Skip to content

Instantly share code, notes, and snippets.

View mseemann's full-sized avatar
🌴
On vacation

Michael Seemann mseemann

🌴
On vacation
View GitHub Profile
@mseemann
mseemann / reactiveform.component.html
Created August 31, 2016 07:32
Reactive Forms Example
<form [formGroup]="form">
<p>
<mdl-textfield label="First Name" name="firstname" type="text" formControlName="firstName" floating-label></mdl-textfield>
</p>
<p>
<mdl-textfield label="Last Name" name="lastname" type="text" formControlName="lastName" floating-label></mdl-textfield>
</p>
<p>
Which breakfast do you prefer?<br/>
<mdl-radio name="breakfast" value="Continental" formControlName="breakfast" mdl-ripple>Continental</mdl-radio>
@mseemann
mseemann / reactiveform.component.ts
Last active October 13, 2019 06:40
Reactive Forms Example(ts)
import {
Component,
OnInit
} from '@angular/core';
import { flyInOutTrigger } from './../animations/flyInOutTrigger-animation';
import { hostConfig } from './../animations/flyInOutTrigger-animation';
import {
FormGroup,
FormControl,
Validators,
import io.mseemann.medium.jmxpg.beans.AppInfo;
import io.mseemann.medium.jmxpg.beans.Requests;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import java.lang.management.ManagementFactory;
import java.util.Hashtable;
public class App {
rules:
- pattern: "jmxpg.mbeans<type=AppInfo, Version=([^:]+)><>Status: ([^:]+)"
name: "msee_jmxpg_mbeans_app_info_status"
type: UNTYPED
help: "Version and status of the app. Status values: running, failed, starting and exited."
value: 1
labels:
version: $1
status: $2
@mseemann
mseemann / User.java
Created September 3, 2021 10:22
mongodb-streams
@Document(collection = ResumeTokenRepository.USER_COLLECTION)
public record User(@Id String id, @Indexed String userName) {
}
@mseemann
mseemann / UserRepository.java
Created September 3, 2021 10:29
mongo-streams UserRepository
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
public interface UserRepository extends ReactiveCrudRepository<User, String> {
}
@mseemann
mseemann / UserController.java
Created September 3, 2021 10:30
monog-streams UserController
@RestController
@AllArgsConstructor
public class UserController {
UserRepository userRepository;
@GetMapping("/user")
public Flux<User> getAllUser() {
return userRepository.findAll();
@mseemann
mseemann / application.yaml
Last active September 3, 2021 11:04
mongo-streams application.yaml
spring:
data:
mongodb:
host: localhost
port: 27017
database: streams
@mseemann
mseemann / UserCollectionChangeStreamService.java
Created September 3, 2021 13:52
UserCollectionChangeStreamService
reactiveMongoTemplate
.changeStream(User.class)
.watchCollection("user")
.listen()
.subscribe(event -> {
log.info("change stream event {}", event);
BsonDocument newResumeToken = Objects.requireNonNull(event.getRaw()).getResumeToken().asDocument();
BsonString token = newResumeToken.getString("_data");
var timeStampInMs = Objects.requireNonNull(event.getBsonTimestamp()).getTime() * 1000L;
@mseemann
mseemann / MongoStats.java
Created September 3, 2021 15:03
MongoStats
Query tailQ = new Query().addCriteria(Criteria.where("ns").is("streams.user"));
reactiveMongoTemplate.tail(tailQ, OplogEntry.class, "oplog.rs")
.retryWhen(Retry.indefinitely().doAfterRetryAsync(signal -> Mono.delay(Duration.ofSeconds(10)).then()))
.subscribe(entry -> {
log.info("tailed entry: {}", entry);
lastOplogAt.set(entry.ts().getTime() * 1000L);
});