<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:59:35 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[JAVA-3430] Refine binary stream interchange in GridFS</title>
                <link>https://jira.mongodb.org/browse/JAVA-3430</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;&lt;tt&gt;AsyncInputStream&lt;/tt&gt; is somewhat unusual in its semantics. From the interface description, it&apos;s hard to reason how the API is supposed to work. That should be probably clarified in the documentation. I propose a simpler mechanism to consume a binary stream by using &lt;tt&gt;Publisher&amp;lt;ByteBuffer&amp;gt;&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Consuming GridFs through &lt;tt&gt;Publisher&amp;lt;ByteBuffer&amp;gt;&lt;/tt&gt;&#160;comes with the following characteristics:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Demand-oriented emission of binary chunks&lt;/li&gt;
	&lt;li&gt;Completion signals EOF&lt;/li&gt;
	&lt;li&gt;Semantics aligned with Reactive Streams&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;An unsolved issue remains with pooled buffers as &lt;tt&gt;AsyncInputStream&lt;/tt&gt; allows copying source content onto the provided ByteBuffer and releasing the source before emitting the written byte count. Maybe extending the concept to &lt;tt&gt;Publisher&amp;lt;T&amp;gt;&lt;/tt&gt; and &lt;tt&gt;BiConsumer&amp;lt;T, ByteBuffer&amp;gt;&lt;/tt&gt; (a copy/mapping function) could work.&lt;/p&gt;

&lt;p&gt;Thoughts?&lt;/p&gt;</description>
                <environment></environment>
        <key id="673981">JAVA-3430</key>
            <summary>Refine binary stream interchange in GridFS</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="ross@mongodb.com">Ross Lawley</assignee>
                                    <reporter username="mp911de">Mark Paluch</reporter>
                        <labels>
                    </labels>
                <created>Thu, 17 Jan 2019 10:24:45 +0000</created>
                <updated>Sat, 28 Oct 2023 11:22:03 +0000</updated>
                            <resolved>Fri, 13 Dec 2019 09:50:35 +0000</resolved>
                                                    <fixVersion>4.0.0</fixVersion>
                                    <component>Reactive Streams</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="2733173" author="xgen-internal-githook" created="Wed, 15 Jan 2020 22:34:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Ross Lawley&apos;, &apos;username&apos;: &apos;rozza&apos;, &apos;email&apos;: &apos;ross.lawley@gmail.com&apos;}
&lt;p&gt;Message: GridFS API improvements&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-3430&quot; title=&quot;Refine binary stream interchange in GridFS&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-3430&quot;&gt;&lt;del&gt;JAVA-3430&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/664d066733d3e5e99b37f8db6931362919e879c2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/664d066733d3e5e99b37f8db6931362919e879c2&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2599280" author="ross@10gen.com" created="Wed, 11 Dec 2019 16:28:06 +0000"  >&lt;p&gt;PR:&#160;&lt;a href=&quot;https://github.com/rozza/mongo-java-driver/pull/340&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/rozza/mongo-java-driver/pull/340&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2566374" author="ross@10gen.com" created="Tue, 26 Nov 2019 14:58:04 +0000"  >&lt;p&gt;Added JAVARS-222 to handle the pre 4.x work&lt;/p&gt;</comment>
                            <comment id="2554322" author="jeff.yemin" created="Wed, 20 Nov 2019 18:50:14 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=ross.lawley&quot; class=&quot;user-hover&quot; rel=&quot;ross.lawley&quot;&gt;ross.lawley&lt;/a&gt;. we can use this ticket for the 4.x port, but we should have a JAVARS ticket for the 1.13 work.&lt;/p&gt;</comment>
                            <comment id="2553752" author="ross@10gen.com" created="Wed, 20 Nov 2019 15:27:59 +0000"  >&lt;p&gt;PR: &lt;a href=&quot;https://github.com/rozza/mongo-java-driver-reactivestreams/pull/21&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/rozza/mongo-java-driver-reactivestreams/pull/21&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2129190" author="mp911de" created="Mon, 28 Jan 2019 15:16:51 +0000"  >&lt;p&gt;I linked the Spring Data MongoDB integration that accepts and exposes binary streams through a Reactive Streams &lt;tt&gt;Publisher&lt;/tt&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hvqep3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>