udaykiran19491/user-stories-from-tawos-for-llm-fine-tuning huggingface dataset:
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "UDP and Legacy syslog sources emit a {{Map}}; reactor emits a POJO. Make them consistent and emit {{Tuple}}s."
Answer: 409160.0

User story: "Create a processing module based on SI's aggregator component.  The completion criteria for the aggregator should be a simple count of messages (e.g. received 50 messages) and a timeout so that messages don't stay in the aggregator module for more than 30 seconds.   *Implementation suggestions*  Create an XML based processing module definition using the SI aggregator namespace.  Only the options to support the features in the description should be exposed as property placeholders.  *How to know it works* A shell style integration test that has a source that sends a known amount of messages.  A ticktock like module would perhaps be a good example.  10 messages sent every 100ms with an aggregator set to a 'aggregate count' of 10, should have 1 message output (perhaps to file sink whose name is based on time as well, is that possible.).  A ticktock example with a 1 second delay and with the aggregator module set to have a timeout of 0.5 seconds will have only one message in the file (again assumign the file name has a timestamp/counter in the filename). "
Answer: 12780.0

User story: "The splitter functionality in Spring Integration should be exposed to XD as a processing module.  The splitter should use a SpEL expression to specify how to split the message up.    *Implementation Suggestions*  This should be a simple XML based module definition that has input/output channels and has the SpEL expression parameterized.  The default value of the SpEL expression should result in the message not being split.  *How to check it works*  The current file or tail input source can be used to split up the text in a file into words.  The tail module should be checked to see how many lines of text it will read into memory at once.  The file module node with the file-to-string transformer will only work for small files as it keep the whole file in memory.    If there is a big memory inefficiency in using the tail file input source, create a new story to investigate how to have a file based input source that creates a message per line of text or something that is will not result in excessive memory usage.  "
Answer: 12790.0

User story: "Use a profile or similar to only include the {{Environment}} conditionally (currently in module-common.xml.  Also  <USER>one thing to keep in mind: we talked about having a properties file for XD that configured the RingBuffer et al in a non-default way  <USER>e.g. no event loop Dispatchers…a ThreadPoolDispatcher with a large thread pool size (50 threads? 100?)…and maybe even two RingBufferDispatchers: input and output  <USER>so we might want to change from strictly a default Environment bean to an EnvironmentFactoryBean with a specific configuration…thinking about it now I maybe should add a namespace element for the Environment"
Answer: 981026.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "{{container}} and {{event}}. {{XDContainer}} references and is referenced by {{ContainerStartedEvent}} (and stopped).  https://sonar.springsource.org/drilldown/measures/7173?metric=package_cycles&rids%5B%5D=7717  "
Answer: 1780.0

User story: "We need to have a properties section (documented as well) so that users can setup their jdbc connections for the various components."
Answer: 99477.0

User story: "Currently the Job launcher launches all the batch jobs configured in the job module.  Please refer, ModuleJobLauncher's executeBatchJob().  This makes the JobRegistry registers with multiple batch jobs under the same Spring XD job name (group name).  Also, it is understood that having multiple jobs configuration under the same config xml is uncommon."
Answer: 6701.0

User story: "Technically speaking of we want to integrate XD UI on Hadoop tools we should do it so that the proxy on resource manager works with XD UI. From Hadoop Yarn resource manager point of view this proxied url is the applications tracking url(which is registered when application is deployed)."
Answer: 227703.0

User story: 1. We'll need a system which give better control of what yarn/xd containers are out there and what is a status of those containers. 2. We also need grouping of containers order to choose, prioritize and scale tasks. 3. We need heartbeating of the grid nodes. Hadoop Yarn itself doesn't give enough tools to know if container is "alive".
Answer: 985510.0

User story: "We need to be able to talk to appmaster which will control the whole xd yarn app.  1. Choose the implementation? Thrift? Spring Int? Something else? "
Answer: 227721.0

User story: "1. How we talk to the XD instance(s) on Yarn 2. There is a rest interface which location can be exposed either via resource manager or appmaster 3. Technically appmaster could also expose interface which could eihter be proxy for xd rest or dedicated interface implementation(i.e. thrift or spring int)"
Answer: 227726.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: The current XD JobController that returns a list of jobs has quite a different API signature than what is in spring-batch-admin.  To simplify the UI development, a new controller JobAdminController, will be created that lives under the request path /jobs/admin.  The goal is to return a the current JSON structure of spring-batch-admin /jobs/ request and make only minimal changes to implementations of controllers as found .  See #1 in the Doc (link to json output doc for spring batch).  *Implementation Suggestions*  There will need to be some SpringMVC setup that will enable the current style of spring-batch-admin controller requests to co-exist with the existing XD Controllers, e.g. the use of .json for json marshalling etc.  This may in fact be the bulk of time spend in this first story to integration spring-batch-admin style controllers into XD.  A new controller named JobAdminController that in the spring-xd-dirt project in the package org.springframework.xd.dirt.rest.  The JobAdminController will not need to follow the same HATEOAS style as the other controllers at this time.  The current controller in Spring Batch Admin looks like this {code}     @RequestMapping(value = "/jobs", method = RequestMethod.GET)     public void jobs(ModelMap model, @RequestParam(defaultValue = "0") int startJob,             @RequestParam(defaultValue = "20") int pageSize) {         int total = jobService.countJobs();         TableUtils.addPagination(model, total, startJob, pageSize, "Job");         Collection<String> names = jobService.listJobs(startJob, pageSize);         List<JobInfo> jobs = new ArrayList<JobInfo>();         for (String name : names) {             int count = 0;             try {                 count = jobService.countJobExecutionsForJob(name);             }             catch (NoSuchJobException e) {                 // shouldn't happen             }             boolean launchable = jobService.isLaunchable(name);             boolean incrementable = jobService.isIncrementable(name);             jobs.add(new JobInfo(name, count, null, launchable, incrementable));         }         model.addAttribute("jobs", jobs);     } {code}  Something like {code} @RequestMapping(value = "/jobs/admin/jobs", method = RequestMethod.GET)  public void jobs(ModelMap model, @RequestParam(defaultValue = "0") int startJob,             @RequestParam(defaultValue = "20") int pageSize) {         // We do *not* have to query the Spring Batch Admin “JobService” at this time, but       //  instead use the  JobDeployer to get information about jobs launched by Spring XD        Iterable<JobDefinition> jobDefinitions =  dobDeployer.findAll()       // copy these over to a List<JobInfo> as best as possible, copy name over.        // not sure how ‘description’ is getting added to the JSON       // pari     } {code} *How to verify it works* A sample job needs to be in the modules/job directory. JobCommandTests/AbstractJobIntegrationTest seems to have what is need to stage a job for  
Answer: 20008.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "We should depend on    <dependency>    <groupId>org.springframework.batch</groupId>    <artifactId>spring-batch-admin-manager</artifactId>    <version>${project.parent.version}</version>   </dependency>   <dependency>    <groupId>org.springframework.batch</groupId>    <artifactId>spring-batch-admin-resources</artifactId>    <version>${project.parent.version}</version>   </dependency>  we are using spring batch 2.2.0.RELEASE.   We need to depend on spring-batch-admin version 1.3.0.BUILD-SNAPSHOT   "
Answer: 20092.0

User story: Unlike in spring-batch-admin, in SpringXD all the jobs the /modules/jobs directory is not ‘visible’ to query when the server starts.  Jobs only become visible to XD’s ‘jobs list’ command once they have been ‘created’.    Creating a Job in XD is an opportunity to specify additional values to any property placeholders in the job bean definition.  This isn’t part of spring-batch-admin.  We will not worry about the creation of job definition in this story.  Assume that they have been created already and that the GET for /jobs works as it does now for Spring XD.   We should however, make sure that there is always a replacement of the job name in the job bean definition to match the ‘--name’ specified in the command line.  That is “job create --name myjob --description “thisfunkyjob”  will use ‘myjob to replace <job id="${xd.stream.name}" in the file thisfunkyjob.xml  *Implementation Suggestions*  This should hopefully just be a matter of changing job definition files to follow the naming pattern.  <job id="${xd.stream.name}" … />  *How to verify it works*  1. Create a JUnit integration style test that has ‘job create --name myjob --defintion “testJob”’ and then deploy the job.  The name ‘myjob’ should appear in the job execution table 
Answer: 7115.0

User story: "Currently *Main class provide alternate static methods for parsing CLI options. One used for testing does not call System.exit() just throws an exception. This code should be moved to spring-xd-test to support integration testing."
Answer: 224399.0

User story: Remove System.setProperty() or System.getProperty() for internal xd properties. Use spring Environment abstraction instead. Also, replace "." in property names with '_' (XDPropertyKeys). This is compatible with environment variable names.   As a result, XD should accept System properties or environment variables or command line options. Command line options should have highest precedence. Retain StandardEnvironment order wrt to System properties and environment variable. 
Answer: 9229.0

User story: "Rename XDContainer, ContainerMain, *ContainerLauncher, ContainerLauncherFactory and any variable or methodNames, bean names, etc. that refer to container in favor of the term 'Node'. Eliminate the dirt.container package, and move Node into .server"
Answer: 228157.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: Trigger can send a message to a named channel.  For example: trigger create --name mytrigger --definition "trigger --cron='*/10 * * * * *' --message='Good Luck, we are all counting on you'"  --channel foo   Where the --message contains the message that will be sent to foo job/component.
Answer: 9770.0

User story: "This story utilizes BatchAdmin and its restful interfaces to show the state of jobs in Spring XD.    *Steps   - Create a Branch in the BatchAdmin (we don't want to lose history)   - Update the restful API's to XD standards.   - Create bamboo task to push jars to artifactory   - Update gradle.build to pull in the Batchadmin jars.   - Expose the restful calls."
Answer: 24490.0

User story: "The HSQLDB that stores the JobRepository needs to have its content exposed via TCP (network service) so that container has access to update the status of a job run.   -Needs to have property that enumerates the host and port for the admin that is accessible by the user. -If one is not specified it should default to localhost:9500.  *Testing: - Unit Tests - Bring up module and admin.       ^Verify that default host and port work     ^Verify that container on different machine has access to admin   "
Answer: 87552.0

User story: "When creating a job, a named channel will be created with a name of job.<your job name>  i.e. job.foo. ======== Required components: - A Transform See XD-733 - JobPlugin needs to create the NamedChannel for the job and associate the transform.    > Registrar.xml will need an input channel?    > Name channel support will be required. - Add --channel to job rest apis to notify system that a named channel is requested.   *Unit Test  "
Answer: 7162.0

User story: "The JobLaunchRequest Transformer shall accept the following payloads:  * File * JSON String * Properties * Map * Tuple  Use/Migrate some of the logic from *JobParametersBean*, e.g. using the *DefaultJobParametersConverter*.  *Special Case File*  When handling a *File*, add special JobParameter *absoluteFilePath* populating it with *message.getPayload().getAbsolutePath()*  * Add unit tests   "
Answer: 7304.0

User story: {code} filter --expression="payload.myfield.startsWith('foo')" {code}  Example using index:  {code} filter --expression="payload.2.startsWith('foo')" {code}  This should support nested keys as well:  {code} filter --expression="payload.myfield.subfield.startsWith('foo')" {code}  This is related to https://jira.springsource.org/browse/XD-676 and that in turn depends on SI being able to configure SpEL
Answer: 23218.0

User story: "Enhance bean naming strategy or provide a value for the property that binds to this"
Answer: 230981.0

User story: "Configure embedded servlet container needs to know where to load the UI code."
Answer: 11938.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "The UI code will be sitting in one or more top level directories in the repository  This story will address the need to   1) copy over the UI code into a location so that it can be picked up by the embedded servlet container when the distribution zip is 'unzipped'.    After running ./xd-admin or ./xd-singlenode one should be able to hit the UI at http://localhost:8999/xd  (just an example)"
Answer: 11939.0

User story: "The UI code will be sitting in one or more top level directories in the repository  This story will address the need to   1) copy over the UI code into a location so that it can be picked up by the embedded servlet container when running inside eclipse"
Answer: 11941.0

User story: "Create a directory structure that best benefits UI development.    The copying of the UI files and other gradle build tasks so that the UI can be run inside the embedded servlet container of XD will be a seperate story"
Answer: 11947.0

User story: "Register the module under test Send a message to the sink using a test source and verify the sink contents - this requires checking an external resource - depends on the sink "
Answer: 270482.0

User story: "Register the module under test  and have access to a source channel that drives messages into the processor and a output channel where output messages are sent.   Examples Built-in Message conversion: send JSON to a processor module that accepts Tuples. "
Answer: 415965.0

User story: "Register the module under test and deploy the module Verify output across all transports Examples Be able to start the rabbitmq source just by pointing to modules/source/rabbit.xml, pass in some property file for parameters to be replaced, and outgoing message is placed in a in-memory queue backed channel for use with assertions to verify functionality.  Test that sending json, results in media-type header is set to json Test that sending POJO -> POJO Test that sending Tuple ->  Tuple Test that sending a (JSON) String -> String Test that sending raw bytes ->  raw bytes "
Answer: 415968.0

User story: "There are a lot of Thread.sleep() calls with delays chosen in the 1-2 seconds range.  Change to a while loop with smaller pauses until a timeout is reached and give up.  This applies to verification code (e.g. verifying that a counter has expected value) as well as File setup, or http being ready to accept requests etc"
Answer: 11514.0

User story: "This is the other side of launching a job by sending a message.  The Job plugin should add listeners at the job/step level so that the job/step context information can be sent out on a channel.  :myjob.notifications is a suggested channel name that would be created automatically."
Answer: 11516.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "After the xd-singlenode process has started, create a new job that has dependencies not already in the parent application context, and then create and run a new job that uses the new module.  *Implementation Suggestions* Develop in the test tree, we can put in the jar and config from https://github.com/SpringSource/spring-xd-samples/tree/master/batch-simple   *How to verify it works.* In a JUnit test case copy in a new job that has new dependencies, ..copy the lib and config directories into the location where the ModuleRegisty will pick it up.  Deploy a new job and check in the job repository that the job ran and was successful.  "
Answer: 566295.0

User story: "After the xd-singlenode process has started, create a new module that has dependencies not already in the parent application context, and then create a stream that uses the new module.  *Implementation Suggestions* Develop in the test tree, maybe of the xd-shell project, a new module.  the lib and config should be sititng around in a directory waiting to be copied into the appropriate spot.  Could try http://www.date4j.net/..The config file  would be similar to time.xml but use the date4j class.  *How to verify it works* In a JUnit test case copy in a new module that has new dependencies, ..copy the lib and config directories into the location where the ModuleRegisty will pick it up.  Deploy a new stream, date4j | file and see if there are contents in the file. "
Answer: 11868.0

User story: "Convert a simple module, such as file, to further test that what was done in the previous story, “Use ParentLastClassLoader to create the Modules ApplicationContext.” works as expected.  *Implementation Suggestions*  Remove from build.gradle the dependency on spring-integration-file and place that jar inside a directory  ./modules/source/file/lib   place the current file.xml inside ./modules/source/file/config  *How to verify it works.*  1. Running tests that currently use the file source, e.g. in spring shell, should work as before 2. When deploying a stream file | log, we should be able to interrogate the channel registry and make sure it found the dependencies for the module, ModuleDescriptor should have a not-null URL[] property."
Answer: 69074.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "The ParentLastClassloader is located in the spring-hadoop project.  It will resolve classes first looking at the child context and then the parent.  This works well for XD since the we want and dependencies of the module to be considered first and if not found, resolve against the parent. It would be possible to even include other versions of .jars already in the parent classloaders (e.g. Spring Integration jars), but for now, we will not immediately test that case.  SimpleModule needs to change to that we can pass in the classloader to use for creating the application context. The current implementation creates a GenericApplicationContext as a field initializer...that should change to be in the ctor.  ModuleDeployer should implement .BeanClassLoaderAware.  The classloader passed in to the BeanClassLoaderAware callback will be used as the ‘parent’ when creating the ParentLastClassloader.    The URL[] to pass into ParentLastClassloader should be ‘null’ or an empty array in this case of an older style module.  (Hopefully ParentLastClassloader  allows that type of fallback).  *Implementation Suggestions:* The ModuleDeployer code is where the application context for the module is defined and instantiated.   Here is a possible impl path.  1. Assuming we can always use ParentLastClassloader (even for older style modules), then the ModuleDescriptor needs to return an array of URL[] locations for the module, getURL().  This is passed into the cto for SimpleModule.  The ctor then creates a new application context, creates the parentclassloader, sets the classloader on the application context and then proceeds as normal.  2.AbstractModuleRegistry should try and load the resource from two possible locations, e.g.   ./modules/source/file/config/file.xml  or  ./modules/source/file.xml  The module registry needs to be a bit smarter to know, ah, i see a config directory, let me try ./config/file.xml otherwise just ./file.xml   *How to verify it works.*  1. JUnit test in which one of the ModuleRegistry implementations points to a test directory that contains both old and new style modules.  FileModuleRegistry is probably a good choice here.  Need to test that the new getting for URL[] works as expected.  2. Existing tests should run as they did before, in particular the shell integration tests."
Answer: 11870.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: $ ./xd-admin --transport redis $ ./xd-container --transport redis $ ./xd-container --transport redis  xd:>stream create --name httpStream --definition "http | file" Created new stream 'httpStream' xd:>tap create --name httpTap --definition "tap httpStream | counter" Created and deployed new tap 'httpTap' xd:>http post --target http://localhost:9000 --data "helloworld" > POST (text/plain;Charset=UTF-8) http://localhost:9000 helloworld > 200 OK  xd:>! cat /tmp/xd/output/httpStream.out command is:cat /tmp/xd/output/httpStream.out helloworld xd:>http post --target http://localhost:9000 --data "helloworld" > POST (text/plain;Charset=UTF-8) http://localhost:9000 helloworld > 200 OK  xd:>! cat /tmp/xd/output/httpStream.out command is:cat /tmp/xd/output/httpStream.out helloworld xd:>! cat /tmp/xd/output/httpStream.out command is:cat /tmp/xd/output/httpStream.out helloworld xd:>http post --target http://localhost:9000 --data "helloworld2" > POST (text/plain;Charset=UTF-8) http://localhost:9000 helloworld2 > 200 OK  xd:>! cat /tmp/xd/output/httpStream.out command is:cat /tmp/xd/output/httpStream.out helloworld helloworld2 xd:>http post --target http://localhost:9000 --data "helloworld3" > POST (text/plain;Charset=UTF-8) http://localhost:9000 helloworld3 > 200 OK  xd:>! cat /tmp/xd/output/httpStream.out command is:cat /tmp/xd/output/httpStream.out helloworld helloworld2 helloworld3 xd:>http post --target http://localhost:9000 --data "helloworld3" > POST (text/plain;Charset=UTF-8) http://localhost:9000 helloworld3 > 200 OK  xd:>! cat /tmp/xd/output/httpStream.out command is:cat /tmp/xd/output/httpStream.out helloworld helloworld2 helloworld3 xd:>! cat /tmp/xd/output/httpStream.out command is:cat /tmp/xd/output/httpStream.out helloworld helloworld2 helloworld3 xd:>http post --target http://localhost:9000 --data "helloworld3" > POST (text/plain;Charset=UTF-8) http://localhost:9000 helloworld3 > 200 OK  xd:>http post --target http://localhost:9000 --data "helloworld3" > POST (text/plain;Charset=UTF-8) http://localhost:9000 helloworld3 > 200 OK  xd:>http post --target http://localhost:9000 --data "helloworld3" > POST (text/plain;Charset=UTF-8) http://localhost:9000 helloworld3 > 200 OK  xd:>! cat /tmp/xd/output/httpStream.out command is:cat /tmp/xd/output/httpStream.out helloworld helloworld2 helloworld3 xd:>http post --target http://localhost:9000 --data "helloworld4" > POST (text/plain;Charset=UTF-8) http://localhost:9000 helloworld4 > 200 OK  xd:>! cat /tmp/xd/output/httpStream.out command is:cat /tmp/xd/output/httpStream.out helloworld helloworld2 helloworld3 helloworld4 xd:>counter display --name httpTap 9 xd:>  however in the regular shell.  $ cat /tmp/xd/output/httpStream.out  helloworld helloworld helloworld2 helloworld3 helloworld3 helloworld3 helloworld3 helloworld3 helloworld4   
Answer: 1118.0

User story: "The above method is invoked before the shared context is refreshed. preProcess... is more accurate"
Answer: 5504.0

User story: "Register in MBeanExportingPlugin. "
Answer: 10033.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "Update JavaDocs in Plugin interface to clearly describe the Plugin contract, i.e.,  where in the lifecycle each method is invoked"
Answer: 10034.0

User story: "Remove unnecessary code that adds beans to shared context after refresh Scheduler should not be in common.xml - register it in TriggerPlugin.postProcessSharedContext()"
Answer: 10035.0

User story: "SingleNodeMain(){    parent = new AC(..)      AdminMain.launch(parent);      ContainerMain.launch(parent); }  This should make startup processing more consistent and symmetrical "
Answer: 4612.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "Need to support Rabbit virtual host property in properties file and as args to Rabbit source and sink"
Answer: 574.0

User story: "The current code is creating an in-memory job repository for each batch job that is launched.  This makes it impossible to query the tables in the job repository across the cluster.  A single job repository that is backed by a file need to be shared across all jobs that are a launched.  *Implementation Suggestions* * The XDAdmin server should create the job repository schema, if not found, in a HSQLDB database, when it starts up * The bean definitions should be added to the same context that the analytics are being loaded in as it is already shared across xd-admin/xd-container.  The ‘analytics’ context should be renamed to something more generic, ‘shared parent context’ or something. * There is some clean up (removal) of the code in the current JobPlugin, META-INF/spring-xd/plugins/job/common.xml wouldn’t be needed anymore.  That might be all, not sure.  *How to verify it works* * A JUnit test that verifies the spring batch tables were created in the job repository when xd-admin is launched.  This would require deleting the backing db file before instantiating singlenode/xd-admin/xd-container.  * If you start the xd-container it should be able to find the necessary DataSource/JobRepository beans information to be able to contact the database.  We don’t have DI style JUnit tests so this will required getting a reference to the xd-container and it’s application context, and performing ‘getBean(JobRepository.class)’    "
Answer: 13954.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: (NOTE: even if we do want to prevent the use of module names for stream names, we obviously need to avoid a StackOverflowError)  to reproduce:  start the xd-singlenode container  start the xd-shell, and type the following:  {code} xd:>stream create time --definition "time | log" {code}  that should produce an Internal Server Error output message  check the xd-singlenode console, and find:  {code} SEVERE: Servlet.service() for servlet [xd] in context with path [] threw exception [Handler processing failed; nested exception is java.lang.StackOverflowError] with root cause java.lang.StackOverflowError  at java.lang.StringValue.from(StringValue.java:24)  at java.lang.String.<init>(String.java:178)  at org.springframework.xd.dirt.stream.dsl.Token.<init>(Token.java:46)  at org.springframework.xd.dirt.stream.dsl.Tokenizer.lexIdentifier(Tokenizer.java:195)  at org.springframework.xd.dirt.stream.dsl.Tokenizer.process(Tokenizer.java:62)  at org.springframework.xd.dirt.stream.dsl.Tokenizer.<init>(Tokenizer.java:41)  at org.springframework.xd.dirt.stream.dsl.StreamConfigParser.parse(StreamConfigParser.java:65)  at org.springframework.xd.dirt.stream.dsl.StreamConfigParser.parse(StreamConfigParser.java:55)  at org.springframework.xd.dirt.stream.dsl.StreamConfigParser.lookupStream(StreamConfigParser.java:545)  at org.springframework.xd.dirt.stream.dsl.StreamNode.resolveModuleNodes(StreamNode.java:135)  at org.springframework.xd.dirt.stream.dsl.StreamNode.resolve(StreamNode.java:122)  at org.springframework.xd.dirt.stream.dsl.StreamsNode.resolve(StreamsNode.java:53)  at org.springframework.xd.dirt.stream.dsl.StreamConfigParser.parse(StreamConfigParser.java:74)  at org.springframework.xd.dirt.stream.dsl.StreamConfigParser.parse(StreamConfigParser.java:55)  at org.springframework.xd.dirt.stream.dsl.StreamConfigParser.lookupStream(StreamConfigParser.java:545)  at org.springframework.xd.dirt.stream.dsl.StreamNode.resolveModuleNodes(StreamNode.java:135)  at org.springframework.xd.dirt.stream.dsl.StreamNode.resolve(StreamNode.java:122)  at org.springframework.xd.dirt.stream.dsl.StreamsNode.resolve(StreamsNode.java:53)  at org.springframework.xd.dirt.stream.dsl.StreamConfigParser.parse(StreamConfigParser.java:74)  at org.springframework.xd.dirt.stream.dsl.StreamConfigParser.parse(StreamConfigParser.java:55)  at org.springframework.xd.dirt.stream.dsl.StreamConfigParser.lookupStream(StreamConfigParser.java:545)  at org.springframework.xd.dirt.stream.dsl.StreamNode.resolveModuleNodes(StreamNode.java:135)  at org.springframework.xd.dirt.stream.dsl.StreamNode.resolve(StreamNode.java:122)  at org.springframework.xd.dirt.stream.dsl.StreamsNode.resolve(StreamsNode.java:53)  ...ad nauseum   {code} 
Answer: 5798.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: After an initial attempt which was not ready for M2 we are rethinking our strategy. One of the fundamental things we have come to realize is that its important to treat serialization and type conversion as separate concerns.  Serialization:  A core principle is the consumer should by default receive exactly what the producer sent:    -   If the producer sends a byte[] payload then no serialization is required.      -   A String payload can use simple byte conversion, taking the Charset into account    -  Transporting an Object uses whatever serialization is configured (json, xml, avro, protocol buffer, java.io, msgpack, etc.).   The actual serialization performed for each message must be shared with the producer and consumer. I.e., the consumer needs to know which case above applies to each payload. Currently we are using the MessageHeaders.CONTENT_TYPE defining custom mime types for this (The designated header is subject to change)  Conversion:     - The consumer optionally defines one or more content-types (read MimeType) it can accept in order of preference. If no conversion succeeds, we can either give them the byte[] payload or throw an exception (configurable?).  Examples:  - Consumer accepts a Java Object (application/x-java-object;type=example.Foo).  Assume for simplicity, the consumer may send a JSON String, or a Foo.  On the receiving end we need to distinguish a String payload containing a JSON representation of Foo from a serialized Foo payload. If the payload is a String, we need to know that its original content is application/json. We are currently using a 2nd "original-content-type" message header to supply this information.  So in the first case we have (conceptually) content-type: "XD plain text" , original-content-type "application/json".  In the second case we have content-type: "XD Serialized JSON" original-content-type not used in this case since the serialized JSON includes type information (using Jackson conventions which are a bit brittle).   -If the producer type is different from the accepted type, we use the conversion service and the consumer must register appropriate converters.   A twist for XD that may be generally relevant is that some optimization is possible when we know the bytes represent JSON:  -  Tuple conversion:  Since we serialize using JSON and we know how to transform JSON <->Tuple,  we can convert any Object  payload or any JSON String to a Tuple.  We can avoid the two step deserialization+conversion,  e.g.   1) Foo->JSON->Foo 2) Foo->Tuple. 
Answer: 96298.0

User story: Remove  <bean id="idGenerator" class="org.springframework.xd.dirt.container.UUIDGenerator" />  (container.xml)  Delete org.springframework.xd.dirt.container.UUIDGenerator remove compile dependency on eaio from build.gradle
Answer: 10654.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "When trying to undeploy/destroy a tap that has reference to an already deleted stream fails with the following exception: Command failed org.springframework.xd.rest.client.impl.SpringXDException: XD116E:(pos 4): unrecognized stream reference '<stream_name at the tap defintion>'.  As expected, the StreamConfigParser's lookupStream fails to find the stream name as the stream doesn't exist in the repository.   In this scenario, what is a better way to handle the tap operations.  Should we undeploy the tap when the stream is destroyed? ( though I don't see an easy way to find the taps that use a specific stream)."
Answer: 162359.0

User story: "Automate running integration tests on all supported transports"
Answer: 231036.0

User story: "we should check the actual deployment requests were built correctly for each module in the testCreateUndeployAndDeleteOfStream test.  Currently we just use the anyListOf check."
Answer: 426528.0

User story: "Make the default value of enableJmx false until we have tested/documented JMX functionality"
Answer: 12126.0

User story: "AbstractDeployer has 4 subclasses, 3 of which override e.g. deploy() making the boilerplate factorization ineffective.  Introduce an intermediate class for those deployers that support the concept of an instance (Stream, Tap, Job to some extent)"
Answer: 8477.0

User story: " String -> byte[] (string.getBytes())  byte[] -> byte[] (no serialization) Pojo -> configured serialization  "
Answer: 55367.0

User story: stream create --name test1 --definition "http --port=8827 | gemfire-server" Created new stream 'test1'  stream create --name test2 --definition "http --port=8828 | gemfire-json-server" Created new stream 'test2'  even if gemfire server is not started, streams are successfully created. This behavior is inconsistent with hdfs where if hdfs connection is not available, creating stream using 'http | hdfs' will fail.  
Answer: 242177.0

User story: xd:>stream create --name testgemfire --definition "http --port=8887 | gemfire"   16:20:28,503  WARN Spring Shell client.RestTemplate:524 - POST request for "http://localhost:8080/streams" resulted in 500 (Internal Server Error); invoking error handler Command failed org.springframework.xd.rest.client.impl.SpringXDException: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'region' defined in null: Could not resolve placeholder 'regionName' in string value "${regionName}"
Answer: 100286.0

User story: "Provide some syntax allowing multiple tap points to be directed to a named channel.  e.g.  tap foo.4 > namedTap tap bar.2 > namedTap  or  :tap.foo > counter"
Answer: 181211.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "Taps are currently source modules.  They could be refactored to simply bridge the tapped module's tap pub/sub topic directly (with conversion) to the first tap module's input channel.  Note - ensure destroy works. Currently the tap is destroyed by the simple fact it is a module; if it's no longer a module we'll need special handling to stop/remove the tap adapter."
Answer: 35878.0

User story: "also, the current behavior is broken; it checks if the property is set but does not actually check whether it's true or false"
Answer: 11038.0

User story: The expression currently appends "." + ${suffix} (where the default suffix is 'out').  If the suffix value were an empty String, this would lead to the file name ending with a dot. We should update the expression so that it only appends the dot if the suffix is not empty. This might be possible with a ternary expression.
Answer: 9751.0

User story: "See  https://github.com/<USER>spring-xd/commit/18302ec62a85d5fd8918beb26cf19968d4a63a2d"
Answer: 100522.0

User story: "This example should require no code. Just the basic XML."
Answer: 242535.0

User story: "Please put in suggestions for the current .settings file.  Maybe one suggestion is to not format on save?"
Answer: 242567.0

User story: Example using name:  {code} filter --expression="payload.myfield.startsWith('foo')" {code}  Example using index:  {code} filter --expression="payload.2.startsWith('foo')" {code}  This should support nested keys as well:  {code} filter --expression="payload.myfield.subfield.startsWith('foo')" {code} 
Answer: 22968.0

User story: "Because StringToJsonNodeTransformer expects a String as input, one cannot chain json related processors.  A simple solution would be to also accept Jackson IN and forward it directly in that case."
Answer: 1077.0

User story: "the value for --target is required (there is no default), but the hint for that option states otherwise:  {code} xd:>http post --target http post --target required --target: the location to post to; default if option not present: 'http://localhost:9000' {code} "
Answer: 14486.0

User story: should go thru the list of all commands available and make sure that a simple "not connected" message is returned instead of something like this:  {code} org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://localhost:8080":Unexpected end of file from server; nested exception is java.net.SocketException: Unexpected end of file from server     at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:498) .... {code} 
Answer: 100790.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: It should be possible to create streams like the following which rely upon named channel support and dynamic routing capabilities:  {code} http | somerouter :x > xtransformer | hdfs :y > ytransformer | hdfs {code}  The 'somerouter' processor could return "x" or "y" which determines the downstream path for each message.  This should be implemented in such a way that any developer adding a router module would only need to deal with existing Spring Integration semantics (in this case, only considering the return of "x" or "y" - whether it be SpEL or a POJO method invocation). Perhaps in the plugin that modifies a module context, we could simply add a new ChannelResolver implementation (by adding that ChannelResolver as a bean and/or a BeanPostProcessor that configures that as the resolver for any router, if necessary). That ChannelResolver would have a reference to the ChannelRegistry so that the router actually sends its messages to those shared channels. The shared channels themselves would have been created as long as a valid downstream flow has been defined.
Answer: 23483.0

User story: "Provide Shell TAB completion when referencing an existing entity"
Answer: 340.0

User story: "Not only should it not use Joda (see XD-668) but the passing of dates currently relies on default formatting"
Answer: 1383.0

User story: "The Rest-Client project should not impose Joda to the user."
Answer: 242950.0

User story: "Currently, the initial tap module accepted media types are not retrieved from the module when creating the tap."
Answer: 242180.0

User story: "Redis transport headers are not removed in taps."
Answer: 820.0

User story: It would be nice to have "lastHours" and "lastDays" options for aggregatecounter display command.
Answer: 2854.0

User story: "Keep getting the following warning:  WARN Spring Shell conf.Configuration:817 - fs.default.name is deprecated. Instead, use fs.defaultFS  Should switch to use the runtime value of the FS_DEFAULT_NAME_KEY constant based on Hadoop version used."
Answer: 2647.0

User story: "Remove the {{NoOpRedisSerializer}} and use the non-serialization feature of M2."
Answer: 8774.0

User story: "Consider 2 Admins/Containers that are using discrete Redis instances but a shared Rabbit instance for the transport.  If two different streams are deployed on each, but with the same stream name, the Rabbit queues will be common (e.g. foo.0), causing crosstalk.  Stream names must be unique across all container instances sharing Rabbit infrastructure.  I am not sure what the solution is; two instances of the *same* stream *do* need common queues but instances of different streams need a qualifier of some kind (container name?). I guess it's not *that* big of an issue because, if they're sharing infrastructure, they're likely to be sharing a stream repo too - in which case you'd need unique stream names."
Answer: 14655.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: Instead of   xd:>http post --target http://localhost:9898 --data "hello world" > POST (text/plain;charset=UTF-8) http://localhost:9898 hello world > 200 OK > Content-Length: 0 > Connection: keep-alive >  Success sending data 'hello world' to target 'http://localhost:9898'   have  xd:>http post --target http://localhost:9898 --data "hello world" > POST (text/plain;charset=UTF-8) http://localhost:9898 hello world > 200 OK   or better yet  xd:>http post --target http://localhost:9898 --data "hello world" > 200 OK POST (text/plain;charset=UTF-8) http://localhost:9898 hello world       
Answer: 58.0

User story: "Support pubsub named channels… the story could be a bit more general though: enable channel creation (with configurable settings) via the REST API and shell  >namedchannel create foo --domain PUBSUB"
Answer: 1005341.0

User story: "Allow Json payloads from external sources, e.g., http post to contain single quoted field names and values. This is required where XD uses Jackson to convert payloads from Json to object or Tuples."
Answer: 27.0

User story: "Any kind of sophisticated artifact retrieval mechanism in XD will need to grab more than one kind of artifact at once.  For example, if I want to see all taps, streams, triggers, and jobs (ie- everything), I need to make 4 http requests.  I can imagine dashboards that need to display information on artifacts of multiple kinds.  There will also need to be a way to pass a query to return a sub-set of artifacts, but that should be designed separately."
Answer: 105006.0

User story: "After running gradle -> refresh source folders on the spring-xd-module project in Eclipse, there is an error because the {{src/test/java}} folder is missing.  Solution is to add a placeholder file."
Answer: 244.0

User story: "This will come back in M3 once we iron out the issues."
Answer: 303.0

User story: "As we overwrote changes to file source by mistake, let's add some regression tests, esp. to the file location.  Plan on extending the utility source and sink functionality"
Answer: 239.0

User story: "Current implementation converts to a String.  See if we can emit raw payload (given that we also emit content-type header)  Setting to 8 points, as this may have lots of implications down the line though"
Answer: 288106.0

User story: "support of the alpha parameter is awkward and can confuse people who are expecting a simple average mean.  Consider splitting RichGauge in two flavors: arithmetic and exponential.  Involves quite some work at the repository, handler and REST level though... "
Answer: 1005860.0

User story: We need to add support for matching column names with underscores like "user_name" and map them to camel case style keys like "userName" in the JdbcMessagePayloadTransformer.
Answer: 131.0

User story: "Figure 1 here https://github.com/SpringSource/spring-xd/wiki/Architecture should also show Rabbit as an option, since otherwise people will think we are tied to redis."
Answer: 164.0
give resolution time in minutes for the given user story, only provide the number of minutes in the output without any other text

User story: "Factor out common Redis/Rabbit {{ChannelRegistry}} code.  Also, factor out common inbound/tap code (very similar).  Change transport nternals to Use AbstractTransformer instead of {{ARPMH}} and {{BridgeHandler}}."
Answer: 49268.0

User story: "The {{AbstractReplyProducingMessageHandler}} in the Rabbit transport exposes the internal transport content-type, if none existed on the original transported message."
Answer: 49.0

User story: "pollers should standardize on fixed-delay vs fixed-rate. The value should accept a property with a standard name like 'interval'"
Answer: 1818.0

User story: "Spring Xd currently ships with Guava 12.0 while Hadoop 2.0.5 and Pivotal HD 1.0 depends on 11.0.2 - this could lead to classpath problems if we include both."
Answer: 563.0

User story: "Consistency with JMS Source."
Answer: 33.0

User story: "E.g. allow for posting of JSON data stored in local files.  * Allow users to specify the *content-type*. * Ensure that Unicode data (UTF) posts correctly."
Answer: 1718.0

User story: "The classes under test are pluralized. Therefore, the test classes themselves should reflect that. E.g. rename *JobCommandTests* to *JobCommandsTests* as it tests class *JobCommands*. Please check all tests in that package for correct naming."
Answer: 1020017.0