18 changed files with 939 additions and 928 deletions
@ -1,78 +0,0 @@
@@ -1,78 +0,0 @@
|
||||
/* |
||||
* Copyright 2011-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.config; |
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition; |
||||
import org.springframework.beans.factory.parsing.BeanComponentDefinition; |
||||
import org.springframework.beans.factory.parsing.CompositeComponentDefinition; |
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder; |
||||
import org.springframework.beans.factory.xml.BeanDefinitionParser; |
||||
import org.springframework.beans.factory.xml.ParserContext; |
||||
import org.springframework.data.mongodb.core.MongoAdmin; |
||||
import org.springframework.data.mongodb.monitor.*; |
||||
import org.springframework.util.StringUtils; |
||||
import org.w3c.dom.Element; |
||||
|
||||
/** |
||||
* @author Mark Pollack |
||||
* @author Thomas Risberg |
||||
* @author John Brisbin |
||||
* @author Oliver Gierke |
||||
* @author Christoph Strobl |
||||
* @deprecated since 4.5 |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
public class MongoJmxParser implements BeanDefinitionParser { |
||||
|
||||
public BeanDefinition parse(Element element, ParserContext parserContext) { |
||||
String name = element.getAttribute("mongo-ref"); |
||||
if (!StringUtils.hasText(name)) { |
||||
name = BeanNames.MONGO_BEAN_NAME; |
||||
} |
||||
registerJmxComponents(name, element, parserContext); |
||||
return null; |
||||
} |
||||
|
||||
protected void registerJmxComponents(String mongoRefName, Element element, ParserContext parserContext) { |
||||
Object eleSource = parserContext.extractSource(element); |
||||
|
||||
CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(element.getTagName(), eleSource); |
||||
|
||||
createBeanDefEntry(AssertMetrics.class, compositeDef, mongoRefName, eleSource, parserContext); |
||||
createBeanDefEntry(BackgroundFlushingMetrics.class, compositeDef, mongoRefName, eleSource, parserContext); |
||||
createBeanDefEntry(BtreeIndexCounters.class, compositeDef, mongoRefName, eleSource, parserContext); |
||||
createBeanDefEntry(ConnectionMetrics.class, compositeDef, mongoRefName, eleSource, parserContext); |
||||
createBeanDefEntry(GlobalLockMetrics.class, compositeDef, mongoRefName, eleSource, parserContext); |
||||
createBeanDefEntry(MemoryMetrics.class, compositeDef, mongoRefName, eleSource, parserContext); |
||||
createBeanDefEntry(OperationCounters.class, compositeDef, mongoRefName, eleSource, parserContext); |
||||
createBeanDefEntry(ServerInfo.class, compositeDef, mongoRefName, eleSource, parserContext); |
||||
createBeanDefEntry(MongoAdmin.class, compositeDef, mongoRefName, eleSource, parserContext); |
||||
|
||||
parserContext.registerComponent(compositeDef); |
||||
|
||||
} |
||||
|
||||
protected void createBeanDefEntry(Class<?> clazz, CompositeComponentDefinition compositeDef, String mongoRefName, |
||||
Object eleSource, ParserContext parserContext) { |
||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(clazz); |
||||
builder.getRawBeanDefinition().setSource(eleSource); |
||||
builder.addConstructorArgReference(mongoRefName); |
||||
BeanDefinition assertDef = builder.getBeanDefinition(); |
||||
String assertName = parserContext.getReaderContext().registerWithGeneratedName(assertDef); |
||||
compositeDef.addNestedComponent(new BeanComponentDefinition(assertDef, assertName)); |
||||
} |
||||
|
||||
} |
||||
@ -1,66 +0,0 @@
@@ -1,66 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
import org.bson.Document; |
||||
|
||||
import com.mongodb.ServerAddress; |
||||
import com.mongodb.client.MongoClient; |
||||
import com.mongodb.client.MongoDatabase; |
||||
import com.mongodb.connection.ServerDescription; |
||||
|
||||
/** |
||||
* Base class to encapsulate common configuration settings when connecting to a database |
||||
* |
||||
* @author Mark Pollack |
||||
* @author Oliver Gierke |
||||
* @author Christoph Strobl |
||||
* @deprecated since 4.5 |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
public abstract class AbstractMonitor { |
||||
|
||||
private final MongoClient mongoClient; |
||||
|
||||
/** |
||||
* @param mongoClient must not be {@literal null}. |
||||
* @since 2.2 |
||||
*/ |
||||
protected AbstractMonitor(MongoClient mongoClient) { |
||||
this.mongoClient = mongoClient; |
||||
} |
||||
|
||||
public Document getServerStatus() { |
||||
return getDb("admin").runCommand(new Document("serverStatus", 1).append("rangeDeleter", 1).append("repl", 1)); |
||||
} |
||||
|
||||
public MongoDatabase getDb(String databaseName) { |
||||
return mongoClient.getDatabase(databaseName); |
||||
} |
||||
|
||||
protected MongoClient getMongoClient() { |
||||
return mongoClient; |
||||
} |
||||
|
||||
protected List<ServerAddress> hosts() { |
||||
|
||||
return mongoClient.getClusterDescription().getServerDescriptions().stream().map(ServerDescription::getAddress) |
||||
.collect(Collectors.toList()); |
||||
} |
||||
} |
||||
@ -1,74 +0,0 @@
@@ -1,74 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import org.bson.Document; |
||||
import org.springframework.jmx.export.annotation.ManagedMetric; |
||||
import org.springframework.jmx.export.annotation.ManagedResource; |
||||
import org.springframework.jmx.support.MetricType; |
||||
|
||||
import com.mongodb.client.MongoClient; |
||||
|
||||
/** |
||||
* JMX Metrics for assertions |
||||
* |
||||
* @author Mark Pollack |
||||
* @deprecated since 4.5 |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
@ManagedResource(description = "Assertion Metrics") |
||||
public class AssertMetrics extends AbstractMonitor { |
||||
|
||||
/** |
||||
* @param mongoClient must not be {@literal null}. |
||||
* @since 2.2 |
||||
*/ |
||||
public AssertMetrics(MongoClient mongoClient) { |
||||
super(mongoClient); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Regular") |
||||
public int getRegular() { |
||||
return getBtree("regular"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Warning") |
||||
public int getWarning() { |
||||
return getBtree("warning"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Msg") |
||||
public int getMsg() { |
||||
return getBtree("msg"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "User") |
||||
public int getUser() { |
||||
return getBtree("user"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Rollovers") |
||||
public int getRollovers() { |
||||
return getBtree("rollovers"); |
||||
} |
||||
|
||||
private int getBtree(String key) { |
||||
Document asserts = (Document) getServerStatus().get("asserts"); |
||||
// Class c = btree.get(key).getClass();
|
||||
return (Integer) asserts.get(key); |
||||
} |
||||
|
||||
} |
||||
@ -1,82 +0,0 @@
@@ -1,82 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import java.util.Date; |
||||
|
||||
import org.bson.Document; |
||||
import org.springframework.jmx.export.annotation.ManagedMetric; |
||||
import org.springframework.jmx.export.annotation.ManagedResource; |
||||
import org.springframework.jmx.support.MetricType; |
||||
|
||||
import com.mongodb.client.MongoClient; |
||||
|
||||
/** |
||||
* JMX Metrics for Background Flushing |
||||
* |
||||
* @author Mark Pollack |
||||
* @deprecated since 4.5 |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
@ManagedResource(description = "Background Flushing Metrics") |
||||
public class BackgroundFlushingMetrics extends AbstractMonitor { |
||||
|
||||
/** |
||||
* @param mongoClient must not be {@literal null}. |
||||
* @since 2.2 |
||||
*/ |
||||
public BackgroundFlushingMetrics(MongoClient mongoClient) { |
||||
super(mongoClient); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Flushes") |
||||
public int getFlushes() { |
||||
return getFlushingData("flushes", java.lang.Integer.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Total ms", unit = "ms") |
||||
public int getTotalMs() { |
||||
return getFlushingData("total_ms", java.lang.Integer.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Average ms", unit = "ms") |
||||
public double getAverageMs() { |
||||
return getFlushingData("average_ms", java.lang.Double.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Last Ms", unit = "ms") |
||||
public int getLastMs() { |
||||
return getFlushingData("last_ms", java.lang.Integer.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Last finished") |
||||
public Date getLastFinished() { |
||||
return getLast(); |
||||
} |
||||
|
||||
@SuppressWarnings("unchecked") |
||||
private <T> T getFlushingData(String key, Class<T> targetClass) { |
||||
Document mem = (Document) getServerStatus().get("backgroundFlushing"); |
||||
return (T) mem.get(key); |
||||
} |
||||
|
||||
private Date getLast() { |
||||
Document bgFlush = (Document) getServerStatus().get("backgroundFlushing"); |
||||
Date lastFinished = (Date) bgFlush.get("last_finished"); |
||||
return lastFinished; |
||||
} |
||||
|
||||
} |
||||
@ -1,81 +0,0 @@
@@ -1,81 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import org.bson.Document; |
||||
import org.springframework.jmx.export.annotation.ManagedMetric; |
||||
import org.springframework.jmx.export.annotation.ManagedResource; |
||||
import org.springframework.jmx.support.MetricType; |
||||
|
||||
import com.mongodb.client.MongoClient; |
||||
|
||||
/** |
||||
* JMX Metrics for B-tree index counters |
||||
* |
||||
* @author Mark Pollack |
||||
* @deprecated since 4.5 |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
@ManagedResource(description = "Btree Metrics") |
||||
public class BtreeIndexCounters extends AbstractMonitor { |
||||
|
||||
/** |
||||
* @param mongoClient must not be {@literal null}. |
||||
* @since 2.2 |
||||
*/ |
||||
public BtreeIndexCounters(MongoClient mongoClient) { |
||||
super(mongoClient); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Accesses") |
||||
public int getAccesses() { |
||||
return getBtree("accesses"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Hits") |
||||
public int getHits() { |
||||
return getBtree("hits"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Misses") |
||||
public int getMisses() { |
||||
return getBtree("misses"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Resets") |
||||
public int getResets() { |
||||
return getBtree("resets"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Miss Ratio") |
||||
public int getMissRatio() { |
||||
return getBtree("missRatio"); |
||||
} |
||||
|
||||
private int getBtree(String key) { |
||||
Document indexCounters = (Document) getServerStatus().get("indexCounters"); |
||||
if (indexCounters.get("note") != null) { |
||||
String message = (String) indexCounters.get("note"); |
||||
if (message.contains("not supported")) { |
||||
return -1; |
||||
} |
||||
} |
||||
Document btree = (Document) indexCounters.get("btree"); |
||||
// Class c = btree.get(key).getClass();
|
||||
return (Integer) btree.get(key); |
||||
} |
||||
|
||||
} |
||||
@ -1,60 +0,0 @@
@@ -1,60 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import org.bson.Document; |
||||
import org.springframework.jmx.export.annotation.ManagedMetric; |
||||
import org.springframework.jmx.export.annotation.ManagedResource; |
||||
import org.springframework.jmx.support.MetricType; |
||||
|
||||
import com.mongodb.client.MongoClient; |
||||
|
||||
/** |
||||
* JMX Metrics for Connections |
||||
* |
||||
* @author Mark Pollack |
||||
* @deprecated since 4.5 |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
@ManagedResource(description = "Connection metrics") |
||||
public class ConnectionMetrics extends AbstractMonitor { |
||||
|
||||
/** |
||||
* @param mongoClient must not be {@literal null}. |
||||
* @since 2.2 |
||||
*/ |
||||
public ConnectionMetrics(MongoClient mongoClient) { |
||||
super(mongoClient); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Current Connections") |
||||
public int getCurrent() { |
||||
return getConnectionData("current", java.lang.Integer.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Available Connections") |
||||
public int getAvailable() { |
||||
return getConnectionData("available", java.lang.Integer.class); |
||||
} |
||||
|
||||
@SuppressWarnings("unchecked") |
||||
private <T> T getConnectionData(String key, Class<T> targetClass) { |
||||
Document mem = (Document) getServerStatus().get("connections"); |
||||
// Class c = mem.get(key).getClass();
|
||||
return (T) mem.get(key); |
||||
} |
||||
|
||||
} |
||||
@ -1,85 +0,0 @@
@@ -1,85 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import org.bson.Document; |
||||
import org.springframework.jmx.export.annotation.ManagedMetric; |
||||
import org.springframework.jmx.export.annotation.ManagedResource; |
||||
import org.springframework.jmx.support.MetricType; |
||||
|
||||
import com.mongodb.DBObject; |
||||
import com.mongodb.client.MongoClient; |
||||
|
||||
/** |
||||
* JMX Metrics for Global Locks |
||||
* |
||||
* @author Mark Pollack |
||||
* @deprecated since 4.5 |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
@ManagedResource(description = "Global Lock Metrics") |
||||
public class GlobalLockMetrics extends AbstractMonitor { |
||||
|
||||
/** |
||||
* @param mongoClient must not be {@literal null}. |
||||
* @since 2.2 |
||||
*/ |
||||
public GlobalLockMetrics(MongoClient mongoClient) { |
||||
super(mongoClient); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Total time") |
||||
public double getTotalTime() { |
||||
return getGlobalLockData("totalTime", java.lang.Double.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Lock time", unit = "s") |
||||
public double getLockTime() { |
||||
return getGlobalLockData("lockTime", java.lang.Double.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Lock time") |
||||
public double getLockTimeRatio() { |
||||
return getGlobalLockData("ratio", java.lang.Double.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Current Queue") |
||||
public int getCurrentQueueTotal() { |
||||
return getCurrentQueue("total"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Reader Queue") |
||||
public int getCurrentQueueReaders() { |
||||
return getCurrentQueue("readers"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Writer Queue") |
||||
public int getCurrentQueueWriters() { |
||||
return getCurrentQueue("writers"); |
||||
} |
||||
|
||||
@SuppressWarnings("unchecked") |
||||
private <T> T getGlobalLockData(String key, Class<T> targetClass) { |
||||
DBObject globalLock = (DBObject) getServerStatus().get("globalLock"); |
||||
return (T) globalLock.get(key); |
||||
} |
||||
|
||||
private int getCurrentQueue(String key) { |
||||
Document globalLock = (Document) getServerStatus().get("globalLock"); |
||||
Document currentQueue = (Document) globalLock.get("currentQueue"); |
||||
return (Integer) currentQueue.get(key); |
||||
} |
||||
} |
||||
@ -1,75 +0,0 @@
@@ -1,75 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import org.bson.Document; |
||||
import org.springframework.jmx.export.annotation.ManagedMetric; |
||||
import org.springframework.jmx.export.annotation.ManagedResource; |
||||
import org.springframework.jmx.support.MetricType; |
||||
|
||||
import com.mongodb.client.MongoClient; |
||||
|
||||
/** |
||||
* JMX Metrics for Memory |
||||
* |
||||
* @author Mark Pollack |
||||
* @deprecated since 4.5 |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
@ManagedResource(description = "Memory Metrics") |
||||
public class MemoryMetrics extends AbstractMonitor { |
||||
|
||||
/** |
||||
* @param mongoClient |
||||
* @since 2.2 |
||||
*/ |
||||
public MemoryMetrics(MongoClient mongoClient) { |
||||
super(mongoClient); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Memory address size") |
||||
public int getBits() { |
||||
return getMemData("bits", java.lang.Integer.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Resident in Physical Memory", unit = "MB") |
||||
public int getResidentSpace() { |
||||
return getMemData("resident", java.lang.Integer.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Virtual Address Space", unit = "MB") |
||||
public int getVirtualAddressSpace() { |
||||
return getMemData("virtual", java.lang.Integer.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Is memory info supported on this platform") |
||||
public boolean getMemoryInfoSupported() { |
||||
return getMemData("supported", java.lang.Boolean.class); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Memory Mapped Space", unit = "MB") |
||||
public int getMemoryMappedSpace() { |
||||
return getMemData("mapped", java.lang.Integer.class); |
||||
} |
||||
|
||||
@SuppressWarnings("unchecked") |
||||
private <T> T getMemData(String key, Class<T> targetClass) { |
||||
Document mem = (Document) getServerStatus().get("mem"); |
||||
// Class c = mem.get(key).getClass();
|
||||
return (T) mem.get(key); |
||||
} |
||||
|
||||
} |
||||
@ -1,78 +0,0 @@
@@ -1,78 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import org.bson.Document; |
||||
import org.springframework.jmx.export.annotation.ManagedMetric; |
||||
import org.springframework.jmx.export.annotation.ManagedResource; |
||||
import org.springframework.jmx.support.MetricType; |
||||
import org.springframework.util.NumberUtils; |
||||
|
||||
import com.mongodb.client.MongoClient; |
||||
|
||||
/** |
||||
* JMX Metrics for Operation counters |
||||
* |
||||
* @author Mark Pollack |
||||
* @deprecated since 4.5 |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
@ManagedResource(description = "Operation Counters") |
||||
public class OperationCounters extends AbstractMonitor { |
||||
|
||||
/** |
||||
* @param mongoClient |
||||
* @since 2.2 |
||||
*/ |
||||
public OperationCounters(MongoClient mongoClient) { |
||||
super(mongoClient); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Insert operation count") |
||||
public int getInsertCount() { |
||||
return getOpCounter("insert"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Query operation count") |
||||
public int getQueryCount() { |
||||
return getOpCounter("query"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Update operation count") |
||||
public int getUpdateCount() { |
||||
return getOpCounter("update"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Delete operation count") |
||||
public int getDeleteCount() { |
||||
return getOpCounter("delete"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "GetMore operation count") |
||||
public int getGetMoreCount() { |
||||
return getOpCounter("getmore"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Command operation count") |
||||
public int getCommandCount() { |
||||
return getOpCounter("command"); |
||||
} |
||||
|
||||
private int getOpCounter(String key) { |
||||
Document opCounters = (Document) getServerStatus().get("opcounters"); |
||||
return NumberUtils.convertNumberToTargetClass((Number) opCounters.get(key), Integer.class); |
||||
} |
||||
} |
||||
@ -1,83 +0,0 @@
@@ -1,83 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import java.net.UnknownHostException; |
||||
|
||||
import org.springframework.jmx.export.annotation.ManagedMetric; |
||||
import org.springframework.jmx.export.annotation.ManagedOperation; |
||||
import org.springframework.jmx.export.annotation.ManagedResource; |
||||
import org.springframework.jmx.support.MetricType; |
||||
import org.springframework.util.StringUtils; |
||||
|
||||
import com.mongodb.client.MongoClient; |
||||
|
||||
/** |
||||
* Expose basic server information via JMX |
||||
* |
||||
* @author Mark Pollack |
||||
* @author Thomas Darimont |
||||
* @author Christoph Strobl |
||||
* @deprecated since 4.5 |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
@ManagedResource(description = "Server Information") |
||||
public class ServerInfo extends AbstractMonitor { |
||||
|
||||
/** |
||||
* @param mongoClient |
||||
* @since 2.2 |
||||
*/ |
||||
protected ServerInfo(MongoClient mongoClient) { |
||||
super(mongoClient); |
||||
} |
||||
|
||||
/** |
||||
* Returns the hostname of the used server reported by MongoDB. |
||||
* |
||||
* @return the reported hostname can also be an IP address. |
||||
* @throws UnknownHostException |
||||
*/ |
||||
@ManagedOperation(description = "Server host name") |
||||
public String getHostName() throws UnknownHostException { |
||||
|
||||
/* |
||||
* UnknownHostException is not necessary anymore, but clients could have |
||||
* called this method in a try..catch(UnknownHostException) already |
||||
*/ |
||||
return StringUtils.collectionToDelimitedString(hosts(), ","); |
||||
} |
||||
|
||||
@ManagedMetric(displayName = "Uptime Estimate") |
||||
public double getUptimeEstimate() { |
||||
return (Double) getServerStatus().get("uptimeEstimate"); |
||||
} |
||||
|
||||
@ManagedOperation(description = "MongoDB Server Version") |
||||
public String getVersion() { |
||||
return (String) getServerStatus().get("version"); |
||||
} |
||||
|
||||
@ManagedOperation(description = "Local Time") |
||||
public String getLocalTime() { |
||||
return (String) getServerStatus().get("localTime"); |
||||
} |
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Server uptime in seconds", unit = "seconds") |
||||
public double getUptime() { |
||||
return (Double) getServerStatus().get("uptime"); |
||||
} |
||||
} |
||||
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
/** |
||||
* MongoDB specific JMX monitoring support. |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
@org.springframework.lang.NonNullApi |
||||
package org.springframework.data.mongodb.monitor; |
||||
|
||||
@ -0,0 +1,935 @@
@@ -0,0 +1,935 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!-- |
||||
~ Copyright 2019-2025 the original author or authors. |
||||
~ |
||||
~ 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 |
||||
~ |
||||
~ https://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. |
||||
--> |
||||
<xsd:schema xmlns="http://www.springframework.org/schema/data/mongo" |
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
||||
xmlns:beans="http://www.springframework.org/schema/beans" |
||||
xmlns:tool="http://www.springframework.org/schema/tool" |
||||
xmlns:repository="http://www.springframework.org/schema/data/repository" |
||||
targetNamespace="http://www.springframework.org/schema/data/mongo" |
||||
elementFormDefault="qualified" attributeFormDefault="unqualified"> |
||||
|
||||
<xsd:import namespace="http://www.springframework.org/schema/beans"/> |
||||
<xsd:import namespace="http://www.springframework.org/schema/tool"/> |
||||
<xsd:import namespace="http://www.springframework.org/schema/context"/> |
||||
<xsd:import namespace="http://www.springframework.org/schema/data/repository" |
||||
schemaLocation="https://www.springframework.org/schema/data/repository/spring-repository.xsd"/> |
||||
|
||||
<xsd:element name="mongo-client" type="mongoClientType"> |
||||
<xsd:annotation> |
||||
<xsd:documentation |
||||
source="org.springframework.data.mongodb.core.MongoClientFactoryBean"> |
||||
<![CDATA[ |
||||
Defines a com.mongodb.client.MongoClient instance used for accessing MongoDB. |
||||
]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation> |
||||
<tool:exports type="com.mongodb.client.MongoClient"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
|
||||
<xsd:element name="db-factory"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Defines a MongoDbFactory for connecting to a specific database |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="id" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The name of the MongoDatabaseFactory definition (by default "mongoDbFactory").]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="mongo-client-ref" type="mongoRef" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The reference to a com.mongodb.client.MongoClient instance. |
||||
]]> |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="dbname" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The name of the database to connect to. Default is 'db'. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="client-uri" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The MongoClientURI string. |
||||
@Deprecated since 3.0 - Use connection-string instead. |
||||
]]> |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="connection-string" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The MongoDB Connection String. Supersedes client-uri. |
||||
See https://docs.mongodb.com/manual/reference/connection-string/ for full documentation. |
||||
@Since 3.0 |
||||
]]> |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="write-concern"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
The WriteConcern that will be the default value used when asking |
||||
the MongoDatabaseFactory for a DB object |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="writeConcernEnumeration xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
|
||||
<xsd:attributeGroup name="mongo-repository-attributes"> |
||||
<xsd:attribute name="mongo-template-ref" type="mongoTemplateRef" |
||||
default="mongoTemplate"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
The reference to a MongoTemplate. Will default to 'mongoTemplate'. |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="create-query-indexes" default="false"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
Enables creation of indexes for queries that get derived from the |
||||
method name |
||||
and thus reference domain class properties. Defaults to false. |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="booleanType xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
</xsd:attributeGroup> |
||||
|
||||
<xsd:element name="repositories"> |
||||
<xsd:complexType> |
||||
<xsd:complexContent> |
||||
<xsd:extension base="repository:repositories"> |
||||
<xsd:attributeGroup ref="mongo-repository-attributes"/> |
||||
<xsd:attributeGroup ref="repository:repository-attributes"/> |
||||
</xsd:extension> |
||||
</xsd:complexContent> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
|
||||
<xsd:element name="mapping-converter"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
<![CDATA[Defines a MongoConverter for getting rich mapping functionality.]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:exports |
||||
type="org.springframework.data.mongodb.core.convert.MappingMongoConverter"/> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="custom-converters" minOccurs="0"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Top-level element that contains one or more custom converters to be used for mapping |
||||
domain objects to and from Mongo's Document]]> |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="converter" type="customConverterType" |
||||
minOccurs="0" maxOccurs="unbounded"/> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="base-package" type="xsd:string"/> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="id" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The name of the MappingMongoConverter instance (by default "mappingConverter").]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="base-package" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The base package in which to scan for entities annotated with @Document |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="db-factory-ref" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
The reference to a MongoDatabaseFactory. |
||||
</xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.MongoDatabaseFactory"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="type-mapper-ref" type="typeMapperRef" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
The reference to a MongoTypeMapper to be used by this |
||||
MappingMongoConverter. |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="mapping-context-ref" type="mappingContextRef" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation |
||||
source="org.springframework.data.mapping.model.MappingContext"> |
||||
The reference to a MappingContext. Will default to |
||||
'mappingContext'. |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="disable-validation" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation |
||||
source="org.springframework.data.mongodb.core.mapping.event.ValidatingMongoEventListener"> |
||||
Disables JSR-303 validation on MongoDB documents before they are |
||||
saved. By default it is set to false. |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="xsd:boolean xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="abbreviate-field-names" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation |
||||
source="org.springframework.data.mongodb.core.mapping.CamelCaseAbbreviatingFieldNamingStrategy"> |
||||
Enables abbreviating the field names for domain class properties |
||||
to the |
||||
first character of their camel case names, e.g. fooBar -> fb. |
||||
Defaults to false. |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="xsd:boolean xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="field-naming-strategy-ref" type="fieldNamingStrategyRef" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation |
||||
source="org.springframework.data.mongodb.core.mapping.FieldNamingStrategy"> |
||||
The reference to a FieldNamingStrategy. |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="auto-index-creation" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
Enable/Disable index creation for annotated properties/entities. |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="xsd:boolean xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
|
||||
<xsd:element name="auditing"> |
||||
<xsd:annotation> |
||||
<xsd:appinfo> |
||||
<tool:annotation> |
||||
<tool:exports |
||||
type="org.springframework.data.mongodb.core.mapping.event.AuditingEntityCallback"/> |
||||
<tool:exports |
||||
type="org.springframework.data.auditing.IsNewAwareAuditingHandler"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:attributeGroup ref="repository:auditing-attributes"/> |
||||
<xsd:attribute name="mapping-context-ref" type="mappingContextRef"/> |
||||
<xsd:attribute name="mongo-converter-ref" type="mongoConverterRef"/> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
|
||||
<xsd:simpleType name="typeMapperRef"> |
||||
<xsd:annotation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.core.convert.MongoTypeMapper"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:union memberTypes="xsd:string"/> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="mappingContextRef"> |
||||
<xsd:annotation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mapping.model.MappingContext"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:union memberTypes="xsd:string"/> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="mongoConverterRef"> |
||||
<xsd:annotation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.core.convert.MongoConverter"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:union memberTypes="xsd:string"/> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="fieldNamingStrategyRef"> |
||||
<xsd:annotation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.core.mapping.FieldNamingStrategy"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:union memberTypes="xsd:string"/> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="mongoTemplateRef"> |
||||
<xsd:annotation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.core.MongoTemplate"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:union memberTypes="xsd:string"/> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="mongoRef"> |
||||
<xsd:annotation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.core.MongoClientFactoryBean"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:union memberTypes="xsd:string"/> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="sslSocketFactoryRef"> |
||||
<xsd:annotation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to type="javax.net.ssl.SSLSocketFactory"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:union memberTypes="xsd:string"/> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="encryptionSettingsRef"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Reference to FactoryBean for com.mongodb.AutoEncryptionSettings - @since 2.2 |
||||
]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.core.MongoEncryptionSettingsFactoryBean"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:union memberTypes="xsd:string"/> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="serverApiRef"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Reference to FactoryBean for com.mongodb.MongoServerApiFactoryBean - @since 3.3 |
||||
]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.core.MongoServerApiFactoryBean"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:union memberTypes="xsd:string"/> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="readConcernEnumeration"> |
||||
<xsd:restriction base="xsd:token"> |
||||
<xsd:enumeration value="DEFAULT"/> |
||||
<xsd:enumeration value="LOCAL"/> |
||||
<xsd:enumeration value="MAJORITY"/> |
||||
<xsd:enumeration value="LINEARIZABLE"/> |
||||
<xsd:enumeration value="AVAILABLE"/> |
||||
</xsd:restriction> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="writeConcernEnumeration"> |
||||
<xsd:restriction base="xsd:token"> |
||||
<xsd:enumeration value="ACKNOWLEDGED"/> |
||||
<xsd:enumeration value="W1"/> |
||||
<xsd:enumeration value="W2"/> |
||||
<xsd:enumeration value="W3"/> |
||||
<xsd:enumeration value="UNACKNOWLEDGED"/> |
||||
<xsd:enumeration value="JOURNALED"/> |
||||
<xsd:enumeration value="MAJORITY"/> |
||||
</xsd:restriction> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="readPreferenceEnumeration"> |
||||
<xsd:restriction base="xsd:token"> |
||||
<xsd:enumeration value="PRIMARY"/> |
||||
<xsd:enumeration value="PRIMARY_PREFERRED"/> |
||||
<xsd:enumeration value="SECONDARY"/> |
||||
<xsd:enumeration value="SECONDARY_PREFERRED"/> |
||||
<xsd:enumeration value="NEAREST"/> |
||||
</xsd:restriction> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="uuidRepresentationEnumeration"> |
||||
<xsd:restriction base="xsd:token"> |
||||
<xsd:enumeration value="UNSPECIFIED"/> |
||||
<xsd:enumeration value="STANDARD"/> |
||||
<xsd:enumeration value="C_SHARP_LEGACY"/> |
||||
<xsd:enumeration value="JAVA_LEGACY"/> |
||||
<xsd:enumeration value="PYTHON_LEGACY"/> |
||||
</xsd:restriction> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="clusterConnectionModeEnumeration"> |
||||
<xsd:restriction base="xsd:token"> |
||||
<xsd:enumeration value="SINGLE"/> |
||||
<xsd:enumeration value="MULTIPLE"/> |
||||
</xsd:restriction> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="clusterTypeEnumeration"> |
||||
<xsd:restriction base="xsd:token"> |
||||
<xsd:enumeration value="STANDALONE"/> |
||||
<xsd:enumeration value="REPLICA_SET"/> |
||||
<xsd:enumeration value="SHARDED"/> |
||||
<xsd:enumeration value="UNKNOWN"/> |
||||
</xsd:restriction> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:simpleType name="booleanType"> |
||||
<xsd:restriction base="xsd:token"> |
||||
<xsd:enumeration value="true"/> |
||||
<xsd:enumeration value="false"/> |
||||
</xsd:restriction> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:complexType name="mongoClientType"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Configuration options for 'com.mongodb.client.MongoClient' |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:sequence minOccurs="0" maxOccurs="1"> |
||||
<xsd:element name="client-settings" type="clientSettingsType"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The Mongo driver settings |
||||
]]></xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation> |
||||
<tool:exports type="com.mongodb.MongoClientSettings"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:element> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="id" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The name of the MongoClient definition (by default "mongoClient").]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="connection-string" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The mongodb connection string. E.g. 'mongodb://localhost:27017?replicaSet=rs0' |
||||
See https://docs.mongodb.com/manual/reference/connection-string/ for full documentation. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="port" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The port to connect to MongoDB server. Default is 27017 |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="host" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The host to connect to a MongoDB server. Default is localhost |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="replica-set" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The replica set name when connecting to a cluster. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="credential" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
NOTE: Best way of setting up a connection is by providing the 'connection-string'. |
||||
The comma delimited list of username:password@database entries to use for authentication. Appending ?uri.authMechanism allows to specify the authentication challenge mechanism. If the credential you're trying to pass contains a comma itself, quote it with single quotes: '…'. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
|
||||
<xsd:complexType name="clientSettingsType"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Configuration options for 'MongoClientSettings' - @since 3.0 |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:attribute name="application-name" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The application name to use when connecting to MongoDB. Mainly used to identify an operation in server logs, query logs and other profiling features. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="uuid-representation" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The storage format of UUID types. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="uuidRepresentationEnumeration xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="read-preference" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The read preference to use for quries, map-reduce, aggregation and count operations. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="readPreferenceEnumeration xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="read-concern" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Set the global read isolation level. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="readConcernEnumeration xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="write-concern"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Set the default 'WriteConcern' that is controls the acknowledgment of write operations. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="writeConcernEnumeration xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="retry-reads" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets whether reads should be retried if they fail due to a network error. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="booleanType xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="retry-writes" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets whether writes should be retried if they fail due to a network error. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="booleanType xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="socket-connect-timeout" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the socket connect timeout (msec). |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="socket-read-timeout" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the socket read timeoutn (msec). |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="socket-receive-buffer-size" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the receive buffer size. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="socket-send-buffer-size" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the send buffer size. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="server-heartbeat-frequency" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
This is the frequency that the driver will attempt to determine the current state of each server in the cluster. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="server-min-heartbeat-frequency" type="xsd:string" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
In the event that the driver has to frequently re-check a server's availability, it will wait at least this long since the previous check to avoid wasted effort. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="cluster-srv-host" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the host name to use in order to look up an SRV DNS record to find the MongoDB hosts. |
||||
NOTE: do not use along with cluster-hosts. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="cluster-hosts" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the hosts for the cluster. Any duplicate server addresses are removed from the list. |
||||
NOTE: do not use along with cluster-srv-host |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="cluster-connection-mode" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the cluster connection mode to either single node direct or multiple servers. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="clusterConnectionModeEnumeration xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="cluster-type" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the cluster type (eg. SHARDED, REPLICA_SET,...). |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="clusterTypeEnumeration xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="cluster-local-threshold" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the local threshold when selecting a server based on fastes ping time. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="cluster-server-selection-timeout" type="xsd:string" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the timeout to apply when selecting a server. |
||||
Zero indicates an immediate timeout while a negative value means indefinitely wait. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="connection-pool-max-size" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the maximum number of connections allowed. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="connection-pool-min-size" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the minimum number of connections. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="connection-pool-max-wait-time" type="xsd:string" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the maximum time a thread may wait for a connection to become available. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="connection-pool-max-connection-life-time" type="xsd:string" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The maximum time a pooled connection can live for. |
||||
Zero indicates no limit. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="connection-pool-max-connection-idle-time" type="xsd:string" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the maximum idle time of a pooled connection. |
||||
Zero indicates no limit. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="connection-pool-maintenance-initial-delay" type="xsd:string" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the period of time to wait before running the first maintenance job on the connection pool. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="connection-pool-maintenance-frequency" type="xsd:string" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Sets the time period between runs of the maintenance job. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="ssl-enabled" default="false"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Set whether SSL should be enabled or not. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="booleanType xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="ssl-invalid-host-name-allowed" type="xsd:string" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Set whether invalid host names should be allowed. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="ssl-provider" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Set the SSL Context instance provider. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="encryption-settings-ref" type="encryptionSettingsRef" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
AutoEncryptionSettings for MongoDB 4.2+ |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="server-api-version" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Set the server API version for MongoDB 5.0+. Use server-api-ref if required to set additional modes like 'strict',... |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="server-api-ref" type="serverApiRef" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
ServerAPI for MongoDB 5.0+ |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
|
||||
<xsd:group name="beanElementGroup"> |
||||
<xsd:choice> |
||||
<xsd:element ref="beans:bean"/> |
||||
<xsd:element ref="beans:ref"/> |
||||
</xsd:choice> |
||||
</xsd:group> |
||||
|
||||
<xsd:complexType name="customConverterType"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Element defining a custom converter. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:group ref="beanElementGroup" minOccurs="0" maxOccurs="1"/> |
||||
<xsd:attribute name="ref" type="xsd:string"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
A reference to a custom converter. |
||||
</xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"/> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
|
||||
<xsd:simpleType name="converterRef"> |
||||
<xsd:annotation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.core.convert.MongoConverter"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
<xsd:union memberTypes="xsd:string"/> |
||||
</xsd:simpleType> |
||||
|
||||
<xsd:element name="template"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Defines a MongoTemplate. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="id" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The name of the MongoTemplate definition (by default "mongoTemplate").]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="converter-ref" type="converterRef" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The reference to a MappingMongoConverter instance. |
||||
]]> |
||||
</xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.core.convert.MongoConverter"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="db-factory-ref" type="xsd:string" |
||||
use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
The reference to a MongoDatabaseFactory. |
||||
</xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.MongoDatabaseFactory"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="write-concern"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
The WriteConcern that will be the default value used when asking |
||||
the MongoDatabaseFactory for a DB object |
||||
</xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:simpleType> |
||||
<xsd:union memberTypes="writeConcernEnumeration xsd:string"/> |
||||
</xsd:simpleType> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
|
||||
<xsd:element name="gridFsTemplate"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
Defines a GridFsTemplate. |
||||
]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="id" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The name of the GridFsTemplate definition (by default "gridFsTemplate").]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="converter-ref" type="converterRef" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The reference to a MappingMongoConverter instance. |
||||
]]> |
||||
</xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.core.convert.MongoConverter"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="db-factory-ref" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation> |
||||
The reference to a MongoDatabaseFactory. |
||||
</xsd:documentation> |
||||
<xsd:appinfo> |
||||
<tool:annotation kind="ref"> |
||||
<tool:assignable-to |
||||
type="org.springframework.data.mongodb.MongoDatabaseFactory"/> |
||||
</tool:annotation> |
||||
</xsd:appinfo> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
<xsd:attribute name="bucket" type="xsd:string" use="optional"> |
||||
<xsd:annotation> |
||||
<xsd:documentation><![CDATA[ |
||||
The GridFs bucket string.]]></xsd:documentation> |
||||
</xsd:annotation> |
||||
</xsd:attribute> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:schema> |
||||
@ -1,38 +0,0 @@
@@ -1,38 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.core; |
||||
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext; |
||||
|
||||
/** |
||||
* Server application than can be run as an app or unit test. |
||||
* |
||||
* @author Mark Pollack |
||||
* @author Oliver Gierke |
||||
* @deprecated since 4.5. |
||||
*/ |
||||
@Deprecated(since = "4.5", forRemoval = true) |
||||
public class JmxServer { |
||||
|
||||
public static void main(String[] args) { |
||||
new JmxServer().run(); |
||||
} |
||||
|
||||
@SuppressWarnings("resource") |
||||
public void run() { |
||||
new ClassPathXmlApplicationContext(new String[] { "infrastructure.xml", "server-jmx.xml" }); |
||||
} |
||||
} |
||||
@ -1,68 +0,0 @@
@@ -1,68 +0,0 @@
|
||||
/* |
||||
* Copyright 2002-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import static org.assertj.core.api.Assertions.*; |
||||
|
||||
import java.net.UnknownHostException; |
||||
|
||||
import org.junit.jupiter.api.Test; |
||||
import org.junit.jupiter.api.extension.ExtendWith; |
||||
import org.springframework.data.mongodb.test.util.Client; |
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension; |
||||
|
||||
import com.mongodb.client.MongoClient; |
||||
|
||||
/** |
||||
* This test class assumes that you are already running the MongoDB server. |
||||
* |
||||
* @author Mark Pollack |
||||
* @author Thomas Darimont |
||||
* @author Mark Paluch |
||||
*/ |
||||
@ExtendWith(MongoClientExtension.class) |
||||
public class MongoMonitorIntegrationTests { |
||||
|
||||
static @Client MongoClient mongoClient; |
||||
|
||||
@Test |
||||
public void serverInfo() { |
||||
ServerInfo serverInfo = new ServerInfo(mongoClient); |
||||
serverInfo.getVersion(); |
||||
} |
||||
|
||||
@Test // DATAMONGO-685
|
||||
public void getHostNameShouldReturnServerNameReportedByMongo() throws UnknownHostException { |
||||
|
||||
ServerInfo serverInfo = new ServerInfo(mongoClient); |
||||
|
||||
String hostName = null; |
||||
try { |
||||
hostName = serverInfo.getHostName(); |
||||
} catch (UnknownHostException e) { |
||||
throw e; |
||||
} |
||||
|
||||
assertThat(hostName).isNotNull(); |
||||
assertThat(hostName).isEqualTo("127.0.0.1:27017"); |
||||
} |
||||
|
||||
@Test |
||||
public void operationCounters() { |
||||
OperationCounters operationCounters = new OperationCounters(mongoClient); |
||||
operationCounters.getInsertCount(); |
||||
} |
||||
} |
||||
@ -1,27 +0,0 @@
@@ -1,27 +0,0 @@
|
||||
/* |
||||
* Copyright 2018-2025 the original author or authors. |
||||
* |
||||
* 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 |
||||
* |
||||
* https://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.springframework.data.mongodb.monitor; |
||||
|
||||
import java.util.function.Supplier; |
||||
|
||||
/** |
||||
* @author Christoph Strobl |
||||
* @since 2018/01 |
||||
*/ |
||||
interface Resumeable<T> { |
||||
|
||||
void resumeAt(Supplier<T> token); |
||||
} |
||||
@ -1,23 +0,0 @@
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<beans xmlns="http://www.springframework.org/schema/beans" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xmlns:p="http://www.springframework.org/schema/p" |
||||
xmlns:mongo="http://www.springframework.org/schema/data/mongo" |
||||
xmlns:context="http://www.springframework.org/schema/context" |
||||
xsi:schemaLocation="http://www.springframework.org/schema/data/mongo https://www.springframework.org/schema/data/mongo/spring-mongo.xsd |
||||
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd |
||||
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> |
||||
|
||||
<mongo:jmx/> |
||||
|
||||
<context:mbean-export/> |
||||
|
||||
<bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean" |
||||
p:port="1099"/> |
||||
|
||||
<!-- Expose JMX over RMI --> |
||||
<bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean" depends-on="registry" |
||||
p:objectName="connector:name=rmi" |
||||
p:serviceUrl="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/myconnector"/> |
||||
|
||||
</beans> |
||||
Loading…
Reference in new issue