Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Kelly Domico
OS Core Lib Azure
Commits
25177cfd
Commit
25177cfd
authored
Oct 08, 2020
by
Erik Leckner
Browse files
upgraded cosmos
parent
63116087
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
pom.xml
View file @
25177cfd
...
...
@@ -21,7 +21,7 @@
<groupId>
org.opengroup.osdu
</groupId>
<artifactId>
core-lib-azure
</artifactId>
<packaging>
jar
</packaging>
<version>
0.0.3
3
</version>
<version>
0.0.3
4
</version>
<name>
core-lib-azure
</name>
<properties>
...
...
@@ -36,7 +36,6 @@
<javax.inject.version>
1
</javax.inject.version>
<azure.identity.version>
1.0.1
</azure.identity.version>
<azure.keyvault.version>
4.1.0
</azure.keyvault.version>
<azure.cosmos.version>
4.0.0-preview.1
</azure.cosmos.version>
<azure.storage.version>
12.3.0
</azure.storage.version>
<azure.servicebus.version>
3.1.4
</azure.servicebus.version>
<azure.appinsights.version>
2.5.1
</azure.appinsights.version>
...
...
@@ -48,20 +47,20 @@
</properties>
<licenses>
<license>
<name>
Apache License, Version 2.0
</name>
<url>
https://www.apache.org/licenses/LICENSE-2.0.txt
</url>
<distribution>
repo
</distribution>
</license>
<license>
<name>
Apache License, Version 2.0
</name>
<url>
https://www.apache.org/licenses/LICENSE-2.0.txt
</url>
<distribution>
repo
</distribution>
</license>
</licenses>
<dependencies>
<dependency>
<groupId>
com.azure
</groupId>
<artifactId>
azure-core-http-netty
</artifactId>
<version>
1.5.3
</version>
</dependency>
<dependency>
<groupId>
com.azure
</groupId>
<artifactId>
azure-core-http-netty
</artifactId>
<version>
1.5.3
</version>
</dependency>
<!-- Spring dependencies -->
<dependency>
...
...
@@ -69,11 +68,6 @@
<artifactId>
spring-beans
</artifactId>
<version>
${org.springframework.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-core
</artifactId>
<version>
${org.springframework.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-context
</artifactId>
...
...
@@ -109,10 +103,11 @@
<artifactId>
azure-security-keyvault-secrets
</artifactId>
<version>
${azure.keyvault.version}
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.azure/azure-spring-data-cosmos -->
<dependency>
<groupId>
com.azure
</groupId>
<artifactId>
azure-cosmos
</artifactId>
<version>
${azure.cosmos.version}
</version>
<artifactId>
azure-
spring-data-
cosmos
</artifactId>
<version>
3.0.0
</version>
</dependency>
<dependency>
<groupId>
com.azure
</groupId>
...
...
@@ -139,7 +134,7 @@
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-log4j2
</artifactId>
<version>
2.
2
.4.RELEASE
</version>
<version>
2.
3
.4.RELEASE
</version>
</dependency>
<dependency>
<groupId>
com.microsoft.azure
</groupId>
...
...
@@ -175,6 +170,18 @@
<version>
${jackson.version}
</version>
<scope>
test
</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-core
</artifactId>
<version>
2.11.2
</version>
</dependency>
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-databind
</artifactId>
<version>
${jackson.version}
</version>
</dependency>
</dependencies>
<repositories>
...
...
src/main/java/org/opengroup/osdu/azure/cache/AsyncCosmosClientCache.java
deleted
100644 → 0
View file @
63116087
package
org.opengroup.osdu.azure.cache
;
import
com.azure.cosmos.internal.AsyncDocumentClient
;
import
org.opengroup.osdu.core.common.cache.VmCache
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Component
;
/**
* Implementation of ICache for AsyncDocumentClient.
*/
@Component
@Lazy
public
class
AsyncCosmosClientCache
extends
VmCache
<
String
,
AsyncDocumentClient
>
{
/**
* Default cache constructor.
*/
public
AsyncCosmosClientCache
()
{
super
(
60
*
60
,
1000
);
}
/**
* @param key cache key
* @return true if found in cache
*/
public
boolean
containsKey
(
final
String
key
)
{
return
this
.
get
(
key
)
!=
null
;
}
}
src/main/java/org/opengroup/osdu/azure/cosmosdb/CosmosClientFactoryImpl.java
View file @
25177cfd
package
org.opengroup.osdu.azure.cosmosdb
;
import
com.azure.cosmos.ConnectionMode
;
import
com.azure.cosmos.ConnectionPolicy
;
import
com.azure.cosmos.CosmosClient
;
import
com.azure.cosmos.CosmosClientBuilder
;
import
com.azure.cosmos.internal.AsyncDocumentClient
;
import
org.opengroup.osdu.azure.cache.AsyncCosmosClientCache
;
import
org.opengroup.osdu.azure.cache.CosmosClientCache
;
import
org.opengroup.osdu.azure.partition.PartitionInfoAzure
;
import
org.opengroup.osdu.azure.partition.PartitionServiceClient
;
...
...
@@ -29,10 +25,6 @@ public class CosmosClientFactoryImpl implements ICosmosClientFactory {
@Autowired
private
CosmosClientCache
syncClientCache
;
@Lazy
@Autowired
private
AsyncCosmosClientCache
asyncCosmosClientCache
;
/**
* @param dataPartitionId Data Partition Id
* @return Cosmos Client instance
...
...
@@ -48,8 +40,8 @@ public class CosmosClientFactoryImpl implements ICosmosClientFactory {
PartitionInfoAzure
pi
=
this
.
partitionService
.
getPartition
(
dataPartitionId
);
CosmosClient
cosmosClient
=
new
CosmosClientBuilder
()
.
setE
ndpoint
(
pi
.
getCosmosEndpoint
())
.
setK
ey
(
pi
.
getCosmosPrimaryKey
())
.
e
ndpoint
(
pi
.
getCosmosEndpoint
())
.
k
ey
(
pi
.
getCosmosPrimaryKey
())
.
buildClient
();
this
.
syncClientCache
.
put
(
cacheKey
,
cosmosClient
);
...
...
@@ -57,31 +49,4 @@ public class CosmosClientFactoryImpl implements ICosmosClientFactory {
return
cosmosClient
;
}
/**
* @param dataPartitionId Data Partition Id
* @return Async Document Client instance
*/
@Override
public
AsyncDocumentClient
getAsyncClient
(
final
String
dataPartitionId
)
{
Validators
.
checkNotNullAndNotEmpty
(
dataPartitionId
,
"dataPartitionId"
);
String
cacheKey
=
String
.
format
(
"%s-asyncCosmosClient"
,
dataPartitionId
);
if
(
this
.
syncClientCache
.
containsKey
(
cacheKey
))
{
return
this
.
asyncCosmosClientCache
.
get
(
cacheKey
);
}
ConnectionPolicy
connectionPolicy
=
new
ConnectionPolicy
();
connectionPolicy
.
setConnectionMode
(
ConnectionMode
.
DIRECT
);
PartitionInfoAzure
pi
=
this
.
partitionService
.
getPartition
(
dataPartitionId
);
AsyncDocumentClient
client
=
new
AsyncDocumentClient
.
Builder
()
.
withServiceEndpoint
(
pi
.
getCosmosEndpoint
())
.
withMasterKeyOrResourceToken
(
pi
.
getCosmosPrimaryKey
())
.
withConnectionPolicy
(
connectionPolicy
)
.
build
();
this
.
asyncCosmosClientCache
.
put
(
cacheKey
,
client
);
return
client
;
}
}
src/main/java/org/opengroup/osdu/azure/cosmosdb/CosmosStore.java
View file @
25177cfd
This diff is collapsed.
Click to expand it.
src/main/java/org/opengroup/osdu/azure/cosmosdb/ICosmosClientFactory.java
View file @
25177cfd
package
org.opengroup.osdu.azure.cosmosdb
;
import
com.azure.cosmos.CosmosClient
;
import
com.azure.cosmos.internal.AsyncDocumentClient
;
/**
* Interface for Cosmos Client Factory to return appropriate cosmos client.
...
...
@@ -15,9 +14,4 @@ public interface ICosmosClientFactory {
*/
CosmosClient
getClient
(
String
dataPartitionId
);
/**
* @param dataPartitionId Data Partition Id
* @return Async Document Client instance
*/
AsyncDocumentClient
getAsyncClient
(
String
dataPartitionId
);
}
src/main/java/org/opengroup/osdu/azure/query/CosmosStorePageRequest.java
0 → 100644
View file @
25177cfd
// Copyright © Microsoft Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package
org.opengroup.osdu.azure.query
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Sort
;
/**
*
*/
public
final
class
CosmosStorePageRequest
extends
PageRequest
{
private
static
final
long
serialVersionUID
=
6093304300037688375L
;
private
String
requestContinuation
;
/**
* @param page page
* @param size size
* @param arequestContinuation requestContinuation
*/
public
CosmosStorePageRequest
(
final
int
page
,
final
int
size
,
final
String
arequestContinuation
)
{
super
(
page
,
size
,
Sort
.
unsorted
());
this
.
requestContinuation
=
arequestContinuation
;
}
/**
* @param page page
* @param size size
* @param requestContinuation requestContinuation
* @return CosmosStorePageRequest
*/
public
static
CosmosStorePageRequest
of
(
final
int
page
,
final
int
size
,
final
String
requestContinuation
)
{
return
new
CosmosStorePageRequest
(
page
,
size
,
requestContinuation
);
}
/**
* @param page page
* @param size size
* @param arequestContinuation requestContinuation
* @param sort sort
*/
public
CosmosStorePageRequest
(
final
int
page
,
final
int
size
,
final
String
arequestContinuation
,
final
Sort
sort
)
{
super
(
page
,
size
,
sort
);
this
.
requestContinuation
=
arequestContinuation
;
}
/**
* @param page page
* @param size size
* @param requestContinuation requestContinuation
* @param sort sort
* @return CosmosStorePageRequest
*/
public
static
CosmosStorePageRequest
of
(
final
int
page
,
final
int
size
,
final
String
requestContinuation
,
final
Sort
sort
)
{
return
new
CosmosStorePageRequest
(
page
,
size
,
requestContinuation
,
sort
);
}
/**
* @return requestContinuation
*/
public
String
getRequestContinuation
()
{
return
this
.
requestContinuation
;
}
/**
* @return hashCode
*/
public
int
hashCode
()
{
int
result
=
super
.
hashCode
();
result
=
31
*
result
+
(
this
.
requestContinuation
!=
null
?
this
.
requestContinuation
.
hashCode
()
:
0
);
return
result
;
}
/**
* @param obj obj
* @return equals
*/
public
boolean
equals
(
final
Object
obj
)
{
if
(
this
==
obj
)
{
return
true
;
}
else
if
(!(
obj
instanceof
CosmosStorePageRequest
))
{
return
false
;
}
else
{
CosmosStorePageRequest
that
=
(
CosmosStorePageRequest
)
obj
;
boolean
continuationTokenEquals
=
this
.
requestContinuation
!=
null
?
this
.
requestContinuation
.
equals
(
that
.
requestContinuation
)
:
that
.
requestContinuation
==
null
;
return
continuationTokenEquals
&&
super
.
equals
(
that
);
}
}
}
src/test/java/org/opengroup/osdu/azure/cosmosdb/CosmosStoreTest.java
View file @
25177cfd
...
...
@@ -14,6 +14,7 @@
package
org.opengroup.osdu.azure.cosmosdb
;
/*
import com.azure.cosmos.ConflictException;
import com.azure.cosmos.CosmosClient;
import com.azure.cosmos.CosmosClientException;
...
...
@@ -28,6 +29,7 @@ import com.azure.cosmos.NotFoundException;
import com.azure.cosmos.SqlQuerySpec;
import com.azure.cosmos.internal.AsyncDocumentClient;
import com.azure.cosmos.internal.Document;
*/
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.extension.ExtendWith
;
...
...
@@ -70,7 +72,7 @@ class CosmosStoreTest {
private
static
final
String
COLLECTION
=
"collection"
;
private
static
final
String
COLLECTION_LINK
=
"/dbs/cosmosdb/colls/collection"
;
private
static
final
String
DATA_PARTITION_ID
=
"data-partition-id"
;
/*
@Mock
private AsyncDocumentClient documentClient;
...
...
@@ -299,4 +301,5 @@ class CosmosStoreTest {
}
return currentPageList;
}
*/
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment