<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:57:56 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-2729] Refactor CRUD API implementations to reduce API surface exposure in driver-core</title>
                <link>https://jira.mongodb.org/browse/JAVA-2729</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;We already have two CRUD API implementations, and may soon add a third, that proxy to instances of ReadOperation/WriteOperation or AsyncReadOperation/AsyncWriteOperation. Two problem that causes:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;There is duplicated code in the two implementations (for example, in converting from WriteModel to WriteRequest)&lt;/li&gt;
	&lt;li&gt;There is unnecessary exposure to the concrete implementations of the operation interfaces (e.g. FindOperation, MixedBulkWriteOperation)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Address this technical debt by:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Creating in core a SyncOperations and an AsyncOperations class, whose methods take the same parameters as the CRUD API but return instances, respectively of ReadOperation/WriteOperation and AsyncReadOperation/AsyncWriteOperation. These are both implemented in terms of a package-private Operations class that has the same methods, but which return instances of the concrete operation types. SyncOperations and AsyncOperations are in com.mongodb.internal currently, so are not considered part of the public API.&lt;/li&gt;
	&lt;li&gt;Re-implementing the sync and async CRUD API (MongoCollection and MongoIterable subclasses) in terms of SyncOperations (for the sync API) and AsyncOperations (for the async API).&lt;/li&gt;
&lt;/ul&gt;

</description>
                <environment></environment>
        <key id="480782">JAVA-2729</key>
            <summary>Refactor CRUD API implementations to reduce API surface exposure in driver-core</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="jeff.yemin@mongodb.com">Jeffrey Yemin</assignee>
                                    <reporter username="jeff.yemin@mongodb.com">Jeffrey Yemin</reporter>
                        <labels>
                    </labels>
                <created>Tue, 9 Jan 2018 22:40:33 +0000</created>
                <updated>Sat, 28 Oct 2023 11:23:01 +0000</updated>
                            <resolved>Wed, 10 Jan 2018 19:00:02 +0000</resolved>
                                                    <fixVersion>3.7.0</fixVersion>
                                    <component>Internal</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="1770575" author="xgen-internal-githook" created="Wed, 10 Jan 2018 19:00:00 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;jeff.yemin@10gen.com&apos;, &apos;name&apos;: &apos;Jeff Yemin&apos;, &apos;username&apos;: &apos;jyemin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-2729&quot; title=&quot;Refactor CRUD API implementations to reduce API surface exposure in driver-core&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-2729&quot;&gt;&lt;del&gt;JAVA-2729&lt;/del&gt;&lt;/a&gt;: Refactor CRUD implementations to reduce API surface exposure to all the concrete operation types.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/becd8fe02b09bf0d5832a3309824065bf5422795&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/becd8fe02b09bf0d5832a3309824065bf5422795&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <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|htf5v3:</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>