Java源码示例:com.hazelcast.config.SerializerConfig
示例1
private Config createConfig() {
Config config;
try {
config = new XmlConfigBuilder(Application.class.getClassLoader().getResource(CONFIG_NAME)).build();
}
catch (IOException e) {
logger.error(e.getMessage(), e);
throw new Error(e);
}
config.getSerializationConfig().addDataSerializableFactory(SerializableFactory.ID, new SerializableFactory());
config.getSerializationConfig().getSerializerConfigs().add(new SerializerConfig().setTypeClass(JsonNode.class)
.setImplementation(JsonSerializer.makePlain(JsonNode.class)));
return config;
}
示例2
@Test
public void testTypedCustomSerializer_configuredBySubclassing() throws Exception {
String mapName = randomMapName();
Config config = new Config();
SerializerConfig serializerConfig = new SerializerConfig();
serializerConfig.setClass(MySerializer.class);
serializerConfig.setTypeClass(AnotherNonSerializableObject.class);
config.getSerializationConfig().getSerializerConfigs().add(serializerConfig);
HazelcastInstance member = hazelcastFactory.newHazelcastInstance(config);
IMap<Integer, AnotherNonSerializableObject> myMap = member.getMap(mapName);
myMap.put(0, new AnotherNonSerializableObject());
AnotherNonSerializableObject fromCache = myMap.get(0);
assertEquals("deserialized", fromCache.name);
}
示例3
/**
* Add configuration to the supplied {@link Config} to support the use of a {@link HazelcastCommandExecutor}.
* @param config The {@link Config} to configure.
* @return The updated {@link Config}.
*/
public Config addCommandExecutorConfiguration(Config config) {
SerializerConfig serializerConfig = new SerializerConfig()
.setImplementation(RemoteCommandSerialiser.using(
objectMapper,
CommandTypeMatcher.matchingAgainst(typeInfoMap)))
.setTypeClass(RemoteCommand.class);
ManagedContext managedContext = CommandProcessingManagedContext
.processingCommandsWith(dispatchingCommandProcessor);
config.getSerializationConfig().addSerializerConfig(serializerConfig);
config.setManagedContext(config.getManagedContext() == null
? managedContext
: CompositeManagedContext.of(managedContext, config.getManagedContext()));
config.addExecutorConfig(new ExecutorConfig(executorName, threadsPerNode));
return config;
}
示例4
@Before
public void setup() {
SerializationConfig serializationConfig = new SerializationConfig();
for (HazelcastSerializer serializer : HazelcastSerializer.getAllSerializers(1000)) {
serializationConfig.addSerializerConfig(
new SerializerConfig()
.setImplementation(serializer)
.setTypeClass(serializer.getSerializableType())
);
serializerByClass.put(serializer.getSerializableType(), serializer);
}
this.serializationService = new DefaultSerializationServiceBuilder()
.setConfig(serializationConfig)
.build();
}
示例5
@Before
public void setup() {
SerializationConfig serializationConfig = new SerializationConfig();
for (HazelcastSerializer serializer : HazelcastSerializer.getAllSerializers(1000)) {
serializationConfig.addSerializerConfig(
new SerializerConfig()
.setImplementation(serializer)
.setTypeClass(serializer.getSerializableType())
);
serializerByClass.put(serializer.getSerializableType(), serializer);
}
this.serializationService = new DefaultSerializationServiceBuilder()
.setConfig(serializationConfig)
.build();
}
示例6
private static <T> T useForClassesInternal(T config, Class<?>...classes) {
SerializationConfig serializationConfig = extractSerializationConfig(config);
for (Class<?> clazz : classes) {
SerializerConfig serializerConfig = new SerializerConfig();
Serializer<?> serializer = new Serializer(clazz);
serializerConfig.setImplementation(serializer);
serializerConfig.setTypeClass(clazz);
serializationConfig.addSerializerConfig(serializerConfig);
}
return config;
}
示例7
@Test
public void useForClasses() {
Config config = new Config();
SubZero.useForClasses(config, String.class);
Collection<SerializerConfig> serializerConfigs = config.getSerializationConfig().getSerializerConfigs();
assertThat(serializerConfigs)
.extracting("typeClass")
.contains(String.class);
}
示例8
private void configureTypedConfig(SerializationConfig config) {
SerializerConfig serializerConfig = new SerializerConfig()
.setTypeClassName("info.jerrinot.subzero.it.Person")
.setClassName("info.jerrinot.subzero.Serializer");
config.addSerializerConfig(serializerConfig);
}
示例9
public synchronized HazelcastInstance getHazelcastInstance(final HazelcastConfig configuration) {
if (hazelcastInstance == null) {
final String serverName = configuration.getServerName();
final String serverPort = configuration.getServerPort();
final String groupName = configuration.getGroupName();
LOG.debug("Hazelcast server name: {}", serverName);
LOG.debug("Hazelcast server port: {}", serverPort);
LOG.debug("Hazelcast group name: {}", groupName);
final ClientConfig clientConfig = new ClientConfig();
clientConfig.getNetworkConfig().setConnectionAttemptLimit(configuration.getConnectionAttemptLimit());
clientConfig.getNetworkConfig().setConnectionAttemptPeriod(configuration.getConnectionAttemptPeriod());
clientConfig.getNetworkConfig().setConnectionTimeout(configuration.getConnectionTimeout());
clientConfig.getNetworkConfig().addAddress(serverName + ":" + serverPort);
clientConfig.getGroupConfig().setName(groupName);
clientConfig.setProperty(LOGGER_PROPERTY_NAME, LOGGER_PROPERTY_SLF4J_TYPE);
final SerializerConfig dolphinEventSerializerConfig = new SerializerConfig().
setImplementation(new EventStreamSerializer()).setTypeClass(DolphinEvent.class);
clientConfig.getSerializationConfig().getSerializerConfigs().add(dolphinEventSerializerConfig);
hazelcastInstance = HazelcastClient.newHazelcastClient(clientConfig);
}
return hazelcastInstance;
}
示例10
public void startServer() throws Exception {
LOG.info("starting hazelcast ...");
executorService = Executors.newSingleThreadExecutor();
// Register serializers in hazelcast configuration
SerializerConfig sc = new SerializerConfig()
.setImplementation(new InstanceInfoSerializer())
.setTypeClass(InstanceInfo.class);
Config config = new Config();
config.getSerializationConfig().addSerializerConfig(sc);
// Create hazelcast instance
hazelcastInstance = Hazelcast.newHazelcastInstance(config);
MembershipListenerImpl membershipListener = new MembershipListenerImpl(expectedClusterSize);
// listen on cluster events
Cluster cluster = hazelcastInstance.getCluster();
cluster.addMembershipListener(membershipListener);
LOG.info("Waiting for expected cluster members to join ...");
membershipListener.awaitClusterFormation(20, TimeUnit.SECONDS);
// populate clusterInfo map
IAtomicLong webPortCounter = hazelcastInstance.getAtomicLong("webPortCounter");
Map<String, InstanceInfo> clusterInfo = hazelcastInstance.getMap( "clusterInfo" );
InstanceInfo instanceInfo = createInstanceInfo(cluster.getLocalMember(), clusterInfo, (int)webPortCounter.getAndAdd(1));
clusterInfo.put(instanceInfo.getId(), instanceInfo);
// register leadership listener
GateKeepingListener gateKeepingListener = new GateKeepingListenerImpl();
GateKeeperRunnable gateKeeperRunnable = new GateKeeperRunnable(executorService, hazelcastInstance, gateKeepingListener);
executorService.submit(gateKeeperRunnable);
LOG.info("initializing service layer ...");
MessageService messageService = new MessageServiceImpl(hazelcastInstance);
RequestRouter requestRouter = new RequestRouter(messageService);
LOG.info("starting web layer ...");
server = new Server();
ServletContextHandler context = new ServletContextHandler(server, "/data", ServletContextHandler.SESSIONS);
// Register websocket handlers
ServletHolder webSocketHolder = new ServletHolder(new WsServlet(requestRouter));
context.addServlet(webSocketHolder, "/websocket");
// Setup http connectors
HttpConfiguration httpConfig = new HttpConfiguration();
HttpConnectionFactory httpConnectionFactory = new HttpConnectionFactory(httpConfig);
ServerConnector http = new ServerConnector(server, httpConnectionFactory);
http.setPort(instanceInfo.getWebServerPort());
server.addConnector(http);
server.start();
LOG.info("init sequence done.");
}
示例11
private SerializerConfig serializerConfig() {
return new SerializerConfig()
.setImplementation(new CarSerializer())
.setTypeClass(Car.class);
}
示例12
/**
* Registers custom Hazelcast serializers for all classes from Bucket4j library which can be transferred over network.
* Each serializer will have different typeId, and this id will not be changed in the feature releases.
*
* <p>
* <strong>Note:</strong> it would be better to leave an empty space in the Ids in order to handle the extension of Bucket4j library when new classes can be added to library.
* For example if you called {@code getAllSerializers(10000)} then it would be reasonable to avoid registering your custom types in the interval 10000-10100.
* </p>
*
* @param typeIdBase a starting number from for typeId sequence
*/
public static void addCustomSerializers(SerializationConfig serializationConfig, final int typeIdBase) {
for (HazelcastSerializer serializer : HazelcastSerializer.getAllSerializers(typeIdBase)) {
serializationConfig.addSerializerConfig(
new SerializerConfig()
.setImplementation(serializer)
.setTypeClass(serializer.getSerializableType())
);
}
}
示例13
/**
* Registers custom Hazelcast serializers for all classes from Bucket4j library which can be transferred over network.
* Each serializer will have different typeId, and this id will not be changed in the feature releases.
*
* <p>
* <strong>Note:</strong> it would be better to leave an empty space in the Ids in order to handle the extension of Bucket4j library when new classes can be added to library.
* For example if you called {@code getAllSerializers(10000)} then it would be reasonable to avoid registering your custom types in the interval 10000-10100.
* </p>
*
* @param typeIdBase a starting number from for typeId sequence
*/
public static void addCustomSerializers(SerializationConfig serializationConfig, final int typeIdBase) {
for (HazelcastSerializer serializer : HazelcastSerializer.getAllSerializers(typeIdBase)) {
serializationConfig.addSerializerConfig(
new SerializerConfig()
.setImplementation(serializer)
.setTypeClass(serializer.getSerializableType())
);
}
}