Skip to content

Commit 4bc96c0

Browse files
committed
Prevent lamba instantiation.
1 parent 9373405 commit 4bc96c0

8 files changed

Lines changed: 20 additions & 30 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
<dependency>
132132
<groupId>org.globsframework</groupId>
133133
<artifactId>globs</artifactId>
134-
<version>4.2.0</version>
134+
<version>4.7.0</version>
135135
</dependency>
136136

137137
<!-- <dependency>-->

src/main/java/org/globsframework/serialisation/BinReaderFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.globsframework.serialisation;
22

3+
import org.globsframework.core.model.GlobInstantiator;
34
import org.globsframework.core.utils.serialization.SerializedInput;
45
import org.globsframework.serialisation.glob.GlobBinReader;
5-
import org.globsframework.serialisation.glob.GlobInstantiator;
66
import org.globsframework.serialisation.glob.type.factory.DefaultGlobTypeFieldReadersFactory;
77
import org.globsframework.serialisation.glob.type.manager.DefaultGlobTypeFieldReadersManager;
88

@@ -19,15 +19,15 @@ public static BinReaderFactory create() {
1919
return new BinReaderFactory();
2020
}
2121

22-
public BinReader createGlobBinReader(InputStream inputStream) {
22+
public BinReader createGlobBinReader(InputStream inputStream) {
2323
return new GlobBinReader(globTypeFieldReadersManager, inputStream);
2424
}
2525

2626
public BinReader createGlobBinReader(SerializedInput serializedInput) {
2727
return new GlobBinReader(globTypeFieldReadersManager, serializedInput);
2828
}
2929

30-
public BinReader createGlobBinReader(GlobInstantiator globInstantiator, SerializedInput serializedInput) {
30+
public BinReader createGlobBinReader(GlobInstantiator globInstantiator, SerializedInput serializedInput) {
3131
return new GlobBinReader(globInstantiator, globTypeFieldReadersManager, serializedInput);
3232
}
3333
}

src/main/java/org/globsframework/serialisation/glob/GlobBinReader.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.globsframework.core.metamodel.GlobType;
44
import org.globsframework.core.model.Glob;
5+
import org.globsframework.core.model.GlobInstantiator;
56
import org.globsframework.core.utils.serialization.SerializedInput;
67
import org.globsframework.serialisation.BinReader;
78
import org.globsframework.serialisation.glob.type.manager.GlobTypeFieldReadersManager;
@@ -13,7 +14,7 @@
1314
public class GlobBinReader implements BinReader {
1415
private final CodedInputStream codedInputStream;
1516

16-
public GlobBinReader(GlobTypeFieldReadersManager globTypeFieldReadersManager, InputStream inputStream) {
17+
public GlobBinReader(GlobTypeFieldReadersManager globTypeFieldReadersManager, InputStream inputStream) {
1718
codedInputStream = CodedInputStream.newInstance(globTypeFieldReadersManager, inputStream);
1819
}
1920

@@ -31,7 +32,7 @@ public Optional<Glob> read(GlobType type) {
3132

3233
public Glob[] readArray(GlobType type) {
3334
int size = codedInputStream.readInt();
34-
Glob[] elements = new Glob[size];
35+
Glob[] elements = new Glob[size];
3536
for (int i = 0; i < size; i++) {
3637
elements[i] = codedInputStream.readGlob(type);
3738
}

src/main/java/org/globsframework/serialisation/glob/GlobInstantiator.java

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,21 @@
11
package org.globsframework.serialisation.glob.type.manager;
22

33
import org.globsframework.core.metamodel.GlobType;
4-
import org.globsframework.core.metamodel.fields.Field;
5-
import org.globsframework.serialisation.field.FieldReader;
6-
import org.globsframework.serialisation.field.reader.FieldReaderVisitorCreator;
7-
import org.globsframework.serialisation.field.reader.UnknownFieldReader;
84
import org.globsframework.serialisation.glob.type.GlobTypeFieldReaders;
95
import org.globsframework.serialisation.glob.type.factory.GlobTypeFieldReadersFactory;
10-
import org.globsframework.serialisation.model.FieldNumber;
116

12-
import java.util.ArrayList;
13-
import java.util.Arrays;
14-
import java.util.List;
157
import java.util.Map;
168
import java.util.concurrent.ConcurrentHashMap;
179

1810
public class DefaultGlobTypeFieldReadersManager implements GlobTypeFieldReadersManager {
19-
private final Map<String, GlobTypeFieldReaders> readersMap = new ConcurrentHashMap<>();
11+
private final Map<GlobType, GlobTypeFieldReaders> readersMap = new ConcurrentHashMap<>();
2012
private final GlobTypeFieldReadersFactory globTypeFieldReadersFactory;
2113

2214
public DefaultGlobTypeFieldReadersManager(GlobTypeFieldReadersFactory globTypeFieldReadersFactory) {
2315
this.globTypeFieldReadersFactory = globTypeFieldReadersFactory;
2416
}
2517

2618
public GlobTypeFieldReaders getOrCreate(GlobType globType) {
27-
return readersMap.computeIfAbsent(globType.getName(), s -> globTypeFieldReadersFactory.create(globType));
19+
return readersMap.computeIfAbsent(globType, globTypeFieldReadersFactory::create);
2820
}
29-
3021
}

src/main/java/org/globsframework/serialisation/glob/type/manager/DefaultGlobTypeFieldWritersManager.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@
88
import java.util.concurrent.ConcurrentHashMap;
99

1010
public class DefaultGlobTypeFieldWritersManager implements GlobTypeFieldWritersManager {
11-
private final Map<String, GlobTypeFieldWriters> writersMap = new ConcurrentHashMap<>();
11+
private final Map<GlobType, GlobTypeFieldWriters> writersMap = new ConcurrentHashMap<>();
1212
private final DefaultGlobTypeFieldWritersFactory factory = new DefaultGlobTypeFieldWritersFactory();
1313

1414
public GlobTypeFieldWriters getOrCreate(GlobType globType) {
15-
return writersMap.computeIfAbsent(globType.getName(), s -> factory.create(globType));
15+
return writersMap.computeIfAbsent(globType, factory::create);
1616
}
17-
1817
}

src/main/java/org/globsframework/serialisation/stream/CodedInputStream.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
import org.globsframework.core.metamodel.GlobType;
44
import org.globsframework.core.model.Glob;
5+
import org.globsframework.core.model.GlobInstantiator;
56
import org.globsframework.core.model.MutableGlob;
67
import org.globsframework.core.utils.serialization.SerializedInput;
78
import org.globsframework.core.utils.serialization.SerializedInputOutputFactory;
89
import org.globsframework.serialisation.WireConstants;
9-
import org.globsframework.serialisation.glob.GlobInstantiator;
1010
import org.globsframework.serialisation.glob.type.GlobTypeFieldReaders;
1111
import org.globsframework.serialisation.glob.type.manager.GlobTypeFieldReadersManager;
1212

src/test/java/org/globsframework/serialisation/PerfReadWriteTest.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import org.globsframework.core.metamodel.impl.DefaultGlobTypeBuilder;
99
import org.globsframework.core.model.Glob;
1010
import org.globsframework.core.utils.ReusableByteArrayOutputStream;
11+
import org.globsframework.core.utils.serialization.ByteOutputInBytes;
12+
import org.globsframework.core.utils.serialization.DefaultSerializationOutput;
1113
import org.globsframework.serialisation.model.FieldNumber;
1214
import org.junit.Assert;
1315
import org.junit.Test;
@@ -145,8 +147,12 @@ private byte[] write(List<Glob> collect, BinWriterFactory writerFactory) {
145147
ReusableByteArrayOutputStream outputStream = new ReusableByteArrayOutputStream();
146148
for (int i = 0; i < 1000; i++) {
147149
outputStream = new ReusableByteArrayOutputStream();
148-
BinWriter binWriter = writerFactory.create(outputStream);
150+
// final Output output = new Output(outputStream);
151+
// BinWriter binWriter = writerFactory.create(new KryoSerializationOutput(output));
152+
final ByteOutputInBytes output = new ByteOutputInBytes(outputStream);
153+
BinWriter binWriter = writerFactory.create(new DefaultSerializationOutput(output));
149154
binWriter.write(collect);
155+
output.flush();
150156
}
151157
long end = System.nanoTime();
152158
System.out.println("write " + (end - start) / 1000000. + "ms size : " + outputStream.size() + " s=" + new String(outputStream.getBuffer(), 0, 10)); // 1100ms puis 600ms
@@ -168,6 +174,7 @@ private void read(BinReaderFactory binReader, byte[] s, GlobType globType) {
168174
Glob[] globs = new Glob[0];
169175
for (int i = 0; i < 1000; i++) {
170176
globs = binReader.createGlobBinReader(new ByteArrayInputStream(s)).readArray(globType);
177+
// globs = binReader.createGlobBinReader(new KryoSerializationInput(new Input(s))).readArray(globType);
171178
Assert.assertEquals(globs.length, 1000);
172179
}
173180
long end = System.nanoTime();

0 commit comments

Comments
 (0)