├── .gitignore ├── EventsByMethod.adoc ├── LICENSE ├── README.adoc ├── YAML2SpecificationCompliance.adoc ├── demo ├── java17setup.sh ├── pom.xml ├── src │ └── main │ │ ├── java │ │ └── run │ │ │ └── chronicle │ │ │ └── wire │ │ │ └── demo │ │ │ ├── Data.java │ │ │ ├── EventByMethodExamples.java │ │ │ ├── Example1.java │ │ │ ├── Example2.java │ │ │ ├── Example3.java │ │ │ ├── Example4.java │ │ │ ├── Example5.java │ │ │ ├── Example6.java │ │ │ ├── Example7.java │ │ │ ├── ListLookup.java │ │ │ └── mapreuse │ │ │ ├── IntMapper.java │ │ │ ├── Mapper.java │ │ │ ├── Security.java │ │ │ └── SecurityLookup.java │ │ └── resources │ │ ├── cfg1.yaml │ │ └── cfg2.yaml └── system.properties ├── images ├── Wire_line.png ├── buffer.png └── source │ └── buffer.svg ├── jlbh-test.sh ├── jlbhBenchmark.png ├── marshallingperf ├── pom.xml ├── src │ └── main │ │ └── java │ │ └── run │ │ └── chronicle │ │ └── wire │ │ └── perf │ │ ├── BytesInBytesMarshallableMain.java │ │ ├── JSONWireMarshallableMain.java │ │ ├── MessageHistoryBytesMarshallableMain.java │ │ ├── MessageHistoryWireMarshallableMain.java │ │ ├── PrimitivesInBytesMarshallableMain.java │ │ └── StringsInBytesMarshallableMain.java └── system.properties ├── microbenchmarks ├── ComparisonMain.results.txt ├── Main.results.txt ├── README.md ├── examples │ └── resources │ │ └── example-data.xml ├── pom.xml ├── results │ ├── boon.txt │ ├── bson.txt │ ├── bsonWithCBytes.txt │ ├── bwireFFF.txt │ ├── bwireFTF.txt │ ├── bwireFTT.txt │ ├── bwireTFF.txt │ ├── bwireTTF.txt │ ├── bytesMarshallable.txt │ ├── bytesMarshallableStopBit.txt │ ├── externalizable.txt │ ├── externalizableWithCBytes.txt │ ├── jackson.txt │ ├── jacksonWithCBytes.txt │ ├── jacksonWithTextCBytes.txt │ ├── json8bit.txt │ ├── rwire8bit.txt │ ├── rwire8bit2.txt │ ├── rwireUTF.txt │ ├── sbe.txt │ ├── smakeYaml.txt │ ├── twire8bit.txt │ └── twireUTF.txt ├── results2021 │ └── i7-10710U.txt ├── src │ └── main │ │ └── java │ │ └── net │ │ └── openhft │ │ └── chronicle │ │ └── wire │ │ └── benchmarks │ │ ├── ComparisonMain.java │ │ ├── Data.java │ │ ├── Data2.java │ │ ├── ExternalizableData.java │ │ ├── Main.java │ │ ├── ObjectPoolMain.java │ │ ├── Side.java │ │ ├── TCData.java │ │ └── bytes │ │ └── NativeData.java └── system.properties ├── pom.xml ├── src ├── main │ ├── java │ │ └── net │ │ │ └── openhft │ │ │ └── chronicle │ │ │ └── wire │ │ │ ├── AbstractAnyWire.java │ │ │ ├── AbstractClassGenerator.java │ │ │ ├── AbstractCommonMarshallable.java │ │ │ ├── AbstractEventCfg.java │ │ │ ├── AbstractFieldInfo.java │ │ │ ├── AbstractGeneratedMethodReader.java │ │ │ ├── AbstractLongConverter.java │ │ │ ├── AbstractMarshallableCfg.java │ │ │ ├── AbstractMethodWriterInvocationHandler.java │ │ │ ├── AbstractTimestampLongConverter.java │ │ │ ├── AbstractWire.java │ │ │ ├── AsMarshallable.java │ │ │ ├── Base32LongConverter.java │ │ │ ├── Base64LongConverter.java │ │ │ ├── Base85LongConverter.java │ │ │ ├── BaseEvent.java │ │ │ ├── BinaryMethodWriterInvocationHandler.java │ │ │ ├── BinaryReadDocumentContext.java │ │ │ ├── BinaryWire.java │ │ │ ├── BinaryWireCode.java │ │ │ ├── BinaryWireHighCode.java │ │ │ ├── BinaryWriteDocumentContext.java │ │ │ ├── BitSetUtil.java │ │ │ ├── BracketType.java │ │ │ ├── BytesInBinaryMarshallable.java │ │ │ ├── CSVWire.java │ │ │ ├── CharSequenceObjectMap.java │ │ │ ├── ChronicleBitSet.java │ │ │ ├── Comment.java │ │ │ ├── CommentAnnotationNotifier.java │ │ │ ├── DefaultValueIn.java │ │ │ ├── Demarshallable.java │ │ │ ├── DocumentContext.java │ │ │ ├── DocumentContextHolder.java │ │ │ ├── DocumentWritten.java │ │ │ ├── DynamicEnum.java │ │ │ ├── Event.java │ │ │ ├── ExcerptListener.java │ │ │ ├── FieldInfo.java │ │ │ ├── FieldNumberParselet.java │ │ │ ├── GenerateJsonSchemaMain.java │ │ │ ├── GenerateMethodBridge.java │ │ │ ├── GenerateMethodDelegate.java │ │ │ ├── GenerateMethodReader.java │ │ │ ├── GenerateMethodWriter.java │ │ │ ├── GenerateMethodWriter2.java │ │ │ ├── GeneratedProxyClass.java │ │ │ ├── GeneratingMethodReaderInterceptorReturns.java │ │ │ ├── HashWire.java │ │ │ ├── HeadNumberChecker.java │ │ │ ├── HexadecimalLongConverter.java │ │ │ ├── IdentifierLongConverter.java │ │ │ ├── InputStreamToWire.java │ │ │ ├── JSONWire.java │ │ │ ├── KeyedMarshallable.java │ │ │ ├── LongArrayValueBitSet.java │ │ │ ├── LongConversion.java │ │ │ ├── LongConverter.java │ │ │ ├── LongValueBitSet.java │ │ │ ├── Marshallable.java │ │ │ ├── MarshallableIn.java │ │ │ ├── MarshallableOut.java │ │ │ ├── MarshallableOutBuilder.java │ │ │ ├── MarshallableParser.java │ │ │ ├── MessageHistory.java │ │ │ ├── MessagePathClassifier.java │ │ │ ├── MethodDelegate.java │ │ │ ├── MethodFilterOnFirstArg.java │ │ │ ├── MethodWireKey.java │ │ │ ├── MethodWriter.java │ │ │ ├── MethodWriterInvocationHandlerSupplier.java │ │ │ ├── MethodWriterValidationException.java │ │ │ ├── MicroDurationLongConverter.java │ │ │ ├── MicroTimestampLongConverter.java │ │ │ ├── MilliTimestampLongConverter.java │ │ │ ├── NanoDurationLongConverter.java │ │ │ ├── NanoTimestampLongConverter.java │ │ │ ├── NoDocumentContext.java │ │ │ ├── ObjectIntObjectConsumer.java │ │ │ ├── ParameterHolderSequenceWriter.java │ │ │ ├── QueryWire.java │ │ │ ├── Quotes.java │ │ │ ├── RawText.java │ │ │ ├── RawWire.java │ │ │ ├── ReadAnyWire.java │ │ │ ├── ReadDocumentContext.java │ │ │ ├── ReadMarshallable.java │ │ │ ├── ReflectionUtil.java │ │ │ ├── RollbackIfNotCompleteNotifier.java │ │ │ ├── ScalarStrategy.java │ │ │ ├── SelfDescribingMarshallable.java │ │ │ ├── SelfDescribingTriviallyCopyable.java │ │ │ ├── Sequence.java │ │ │ ├── SerializationStrategies.java │ │ │ ├── SerializationStrategy.java │ │ │ ├── ServicesTimestampLongConverter.java │ │ │ ├── ShortTextLongConverter.java │ │ │ ├── SourceContext.java │ │ │ ├── TextMethodWriterInvocationHandler.java │ │ │ ├── TextReadDocumentContext.java │ │ │ ├── TextStopCharTesters.java │ │ │ ├── TextStopCharsTesters.java │ │ │ ├── TextWire.java │ │ │ ├── TextWriteDocumentContext.java │ │ │ ├── TriConsumer.java │ │ │ ├── UnexpectedFieldHandlingException.java │ │ │ ├── UnrecoverableTimeoutException.java │ │ │ ├── Validate.java │ │ │ ├── ValueIn.java │ │ │ ├── ValueInStack.java │ │ │ ├── ValueInState.java │ │ │ ├── ValueOut.java │ │ │ ├── VanillaMessageHistory.java │ │ │ ├── VanillaMethodReader.java │ │ │ ├── VanillaMethodReaderBuilder.java │ │ │ ├── VanillaMethodWriterBuilder.java │ │ │ ├── VanillaWireParser.java │ │ │ ├── Wire.java │ │ │ ├── WireCommon.java │ │ │ ├── WireDumper.java │ │ │ ├── WireIn.java │ │ │ ├── WireInternal.java │ │ │ ├── WireKey.java │ │ │ ├── WireMarshaller.java │ │ │ ├── WireMarshallerForUnexpectedFields.java │ │ │ ├── WireObjectInput.java │ │ │ ├── WireObjectOutput.java │ │ │ ├── WireOut.java │ │ │ ├── WireParselet.java │ │ │ ├── WireParser.java │ │ │ ├── WireSerializedLambda.java │ │ │ ├── WireToOutputStream.java │ │ │ ├── WireType.java │ │ │ ├── WireTypeConverter.java │ │ │ ├── Wires.java │ │ │ ├── WordsLongConverter.java │ │ │ ├── WrappedDocumentContext.java │ │ │ ├── WriteAfterEOFException.java │ │ │ ├── WriteDocumentContext.java │ │ │ ├── WriteMarshallable.java │ │ │ ├── WriteValue.java │ │ │ ├── YamlKeys.java │ │ │ ├── YamlLogging.java │ │ │ ├── YamlToken.java │ │ │ ├── YamlTokeniser.java │ │ │ ├── YamlWire.java │ │ │ ├── YamlWireOut.java │ │ │ ├── converter │ │ │ ├── Base16.java │ │ │ ├── Base64.java │ │ │ ├── Base85.java │ │ │ ├── Id.java │ │ │ ├── NanoTime.java │ │ │ ├── PowerOfTwoLongConverter.java │ │ │ ├── ShortText.java │ │ │ ├── SizeLongConverter.java │ │ │ ├── SymbolsLongConverter.java │ │ │ └── Words.java │ │ │ ├── domestic │ │ │ ├── AutoTailers.java │ │ │ ├── InternalWire.java │ │ │ ├── extractor │ │ │ │ ├── DocumentExtractor.java │ │ │ │ ├── ToDoubleDocumentExtractor.java │ │ │ │ └── ToLongDocumentExtractor.java │ │ │ ├── package-info.java │ │ │ ├── reduction │ │ │ │ ├── ConcurrentCollectors.java │ │ │ │ ├── README.adoc │ │ │ │ ├── Reduction.java │ │ │ │ └── Reductions.java │ │ │ └── stream │ │ │ │ ├── README.adoc │ │ │ │ └── Streams.java │ │ │ ├── internal │ │ │ ├── FileMarshallableOut.java │ │ │ ├── FromStringInterner.java │ │ │ ├── HTTPMarshallableOut.java │ │ │ ├── InternalAutoTailers.java │ │ │ ├── MethodWriterClassNameGenerator.java │ │ │ ├── StringConsumerMarshallableOut.java │ │ │ ├── VanillaFieldInfo.java │ │ │ ├── WireTypeConverterInternal.java │ │ │ ├── extractor │ │ │ │ ├── DocumentExtractorBuilder.java │ │ │ │ └── DocumentExtractorUtil.java │ │ │ ├── fieldinfo │ │ │ │ ├── CharFieldInfo.java │ │ │ │ ├── DoubleFieldInfo.java │ │ │ │ ├── IntFieldInfo.java │ │ │ │ ├── LongFieldInfo.java │ │ │ │ ├── ObjectFieldInfo.java │ │ │ │ └── UnsafeFieldInfo.java │ │ │ ├── package-info.java │ │ │ ├── reduction │ │ │ │ └── ReductionUtil.java │ │ │ └── stream │ │ │ │ └── StreamsUtil.java │ │ │ └── utils │ │ │ ├── ConfigLoader.java │ │ │ ├── JavaSourceCodeFormatter.java │ │ │ ├── JsonSourceCodeFormatter.java │ │ │ ├── MethodReaderStatus.java │ │ │ ├── RecordHistory.java │ │ │ └── SourceCodeFormatter.java │ └── resources │ │ ├── common-words.txt │ │ └── more-common-words.txt └── test │ ├── java │ └── net │ │ └── openhft │ │ └── chronicle │ │ └── wire │ │ ├── AbstractClassGeneratorTest.java │ │ ├── AbstractCommonMarshallableTest.java │ │ ├── AbstractFieldTest.java │ │ ├── AbstractMarshallableCfgTest.java │ │ ├── AbstractTimestampLongConverterJLBHBenchmark.java │ │ ├── AbstractUntypedFieldTest.java │ │ ├── Base32LongConverterTest.java │ │ ├── Base64LongConverterTest.java │ │ ├── Base85LongConverterTest.java │ │ ├── BinaryInTextTest.java │ │ ├── BinaryMethodWriterInvocationHandlerTest.java │ │ ├── BinaryToTextTest.java │ │ ├── BinaryWire2Test.java │ │ ├── BinaryWireHighCodeTest.java │ │ ├── BinaryWireNumbersTest.java │ │ ├── BinaryWirePerfTest.java │ │ ├── BinaryWireStringInternerTest.java │ │ ├── BinaryWireTest.java │ │ ├── BinaryWireWithMappedBytesTest.java │ │ ├── BitSetTest.java │ │ ├── BracketsOnJSONWireTest.java │ │ ├── BytesMarshallableCompatibilityTest.java │ │ ├── CSVBytesMarshallableTest.java │ │ ├── CSVWireTest.java │ │ ├── CcyPair.java │ │ ├── ChainedMethodsTest.java │ │ ├── ChainedMethodsTestChainedMethodsTest$1MethodReader.java │ │ ├── CharSequenceObjectMapTest.java │ │ ├── ChronicleBitSetTest.java │ │ ├── ClassAliasPoolTest.java │ │ ├── CopyTest.java │ │ ├── DMNestedClass.java │ │ ├── DMOuterClass.java │ │ ├── DefaultMarshallerTest.java │ │ ├── DemarshallableObject.java │ │ ├── DeserializeFromNakedFileTest.java │ │ ├── DocumentContextTest.java │ │ ├── DoubleTest.java │ │ ├── EgMain.java │ │ ├── ElasticByteBufferTest.java │ │ ├── EmbeddedBytesMarshallableTest.java │ │ ├── EndOfDayShort.java │ │ ├── EnumSetMarshallingTest.java │ │ ├── EnumTest.java │ │ ├── EscapeCharsTest.java │ │ ├── FIX42.java │ │ ├── FIX42Test.java │ │ ├── FloatDtoTest.java │ │ ├── ForwardAndBackwardCompatibilityMarshallableTest.java │ │ ├── ForwardAndBackwardCompatibilityTest.java │ │ ├── Fun.java │ │ ├── GenerateFIXWireKey.java │ │ ├── GenerateJsonSchemaMainTest.java │ │ ├── GenerateMethodBridgeTest.java │ │ ├── GenerateMethodDelegateTest.java │ │ ├── GenerateMethodWriterSameInterfaceDifferentOuterClassTest.java │ │ ├── GenericMethodsTest.java │ │ ├── HashWireTest.java │ │ ├── HexDumpTest.java │ │ ├── ILast.java │ │ ├── IMid.java │ │ ├── IMid2.java │ │ ├── ITop.java │ │ ├── IdentifierLongConverterTest.java │ │ ├── IgnoreHighOrderBitsTest.java │ │ ├── InnerMapTest.java │ │ ├── IntConversionTest.java │ │ ├── InvalidYamWithCommonMistakesTest.java │ │ ├── Issue341Test.java │ │ ├── JSONEmptySequencesTest.java │ │ ├── JSONNanTest.java │ │ ├── JSONTypesWithEnumsAndBoxedTypesTest.java │ │ ├── JSONTypesWithMapsTest.java │ │ ├── JSONWireDTOTest.java │ │ ├── JSONWireMiscTest.java │ │ ├── JSONWireTest.java │ │ ├── JSONWireTypesTest.java │ │ ├── JSONWireWithListsTest.java │ │ ├── JsonUtil.java │ │ ├── JsonWireDoubleAndFloatSpecialValuesAcceptanceTests.java │ │ ├── JsonWireToStringAcceptanceTest.java │ │ ├── KubernetesYamlTest.java │ │ ├── LongConversionExampleA.java │ │ ├── LongConversionExampleB.java │ │ ├── LongConversionExampleC.java │ │ ├── LongConversionTest.java │ │ ├── Marshallable2Test.java │ │ ├── MarshallableCfgResetTest.java │ │ ├── MarshallableOutBuilderTest.java │ │ ├── MarshallableTest.java │ │ ├── MessageHistoryTest.java │ │ ├── MessagePathClassifierTest.java │ │ ├── MethodReaderArgumentsRecycleProxyTest.java │ │ ├── MethodReaderArgumentsRecycleTest.java │ │ ├── MethodReaderBuilderExceptionHandlerTest.java │ │ ├── MethodReaderChainedInterceptedGenericInterfaceTest.java │ │ ├── MethodReaderDelegationTest.java │ │ ├── MethodReaderInterceptorReturnsTest.java │ │ ├── MethodReaderMethodIdsTest.java │ │ ├── MethodReaderNonStandardInstancesTest.java │ │ ├── MethodReaderSuperInterfaceForSeveralReturnTypesTest.java │ │ ├── MethodWriterBytesTest.java │ │ ├── MethodWriterNestedReturnTypeTest.java │ │ ├── MethodWriterStringTest.java │ │ ├── MethodWriterVagueTypesTest.java │ │ ├── MicroLongConverterTest.java │ │ ├── MicroTimestampLongConverterTest.java │ │ ├── MilliTimestampLongConverterTest.java │ │ ├── MyClass.java │ │ ├── MyClass2.java │ │ ├── MyClass3.java │ │ ├── MyMarshallable.java │ │ ├── MyTypes.java │ │ ├── MyTypesCustom.java │ │ ├── NanoLongConverterTest.java │ │ ├── NanoTimestampLongConverterTest.java │ │ ├── NestedMapsTest.java │ │ ├── ObjectWithTreeMap.java │ │ ├── OutOfOrderTest.java │ │ ├── Outer1.java │ │ ├── Outer2.java │ │ ├── OverrideAValueTest.java │ │ ├── PrimArraysTest.java │ │ ├── PrimitiveTypeWrappersTest.java │ │ ├── ProjectTest.java │ │ ├── QueryWireTest.java │ │ ├── RFCExamplesTest.java │ │ ├── RawWirePerfTest.java │ │ ├── RawWireTest.java │ │ ├── ReadAnyWireTest.java │ │ ├── ReadDocumentContextTest.java │ │ ├── ReadOneTest.java │ │ ├── ReadmeChapter1Test.java │ │ ├── ReadmePojoTest.java │ │ ├── SequenceTest.java │ │ ├── SerializableObjectTest.java │ │ ├── ShortTextLongConverterTest.java │ │ ├── SizeLongConverterTest.java │ │ ├── SkipValueTest.java │ │ ├── SmallDoublesMarshallingTest.java │ │ ├── StrangeTextCombinationTest.java │ │ ├── StreamMain.java │ │ ├── StringConsumerMarshallableOutTest.java │ │ ├── TWTSingleton.java │ │ ├── TestIntConversion.java │ │ ├── TestJsonIssue467.java │ │ ├── TestLongConversion.java │ │ ├── TestMarshallable.java │ │ ├── TestMarshallableZoneId.java │ │ ├── TextBinaryWireTest.java │ │ ├── TextCompatibilityTest.java │ │ ├── TextDocumentTest.java │ │ ├── TextSkipValueTest.java │ │ ├── TextWireAgitatorTest.java │ │ ├── TextWireCompatibilityTest.java │ │ ├── TextWireTest.java │ │ ├── TextWireTypeArrayTest.java │ │ ├── TextWithArraysTest.java │ │ ├── ThrowableTest.java │ │ ├── TimestampLongConverterZoneIdsTest.java │ │ ├── TimestampLongConverterZonedIdsConfigTest.java │ │ ├── TriviallyCopyableJLBH.java │ │ ├── TriviallyCopyableTest.java │ │ ├── UnicodeStringTest.java │ │ ├── UnknownEnumTest.java │ │ ├── UnknownFieldsTest.java │ │ ├── UnsupportedChangesTest.java │ │ ├── Update.java │ │ ├── UpdateInterceptorReturnTypeTest.java │ │ ├── UsingTestMarshallableTest.java │ │ ├── ValueOutTest.java │ │ ├── VanillaMessageHistoryTest.java │ │ ├── VanillaMethodReaderTest.java │ │ ├── VanillaMethodWriterBuilderVerboseTypesTest.java │ │ ├── WMTwoFields.java │ │ ├── WireDumperRandomTest.java │ │ ├── WireDumperTest.java │ │ ├── WireInternalInternTest.java │ │ ├── WireInternalTest.java │ │ ├── WireMarshallerTest.java │ │ ├── WireParserTest.java │ │ ├── WireResetTest.java │ │ ├── WireResourcesTest.java │ │ ├── WireSerializedLambdaTest.java │ │ ├── WireStringCollectionTest.java │ │ ├── WireTestCommon.java │ │ ├── WireTests.java │ │ ├── WireTextBugTest.java │ │ ├── WireToOutputStreamTest.java │ │ ├── WireTypeConverterTest.java │ │ ├── WireTypeTest.java │ │ ├── WiresFromFileTest.java │ │ ├── WiresTest.java │ │ ├── WordsLongConverterTest.java │ │ ├── WriteDocumentContextTest.java │ │ ├── YamlSpecTest.java │ │ ├── YamlSpecificationTest.java │ │ ├── YamlSpecificationTextWireTest.java │ │ ├── YamlTokeniserTest.java │ │ ├── YamlWireTest.java │ │ ├── YamlWireUtilTest.java │ │ ├── bytesmarshallable │ │ ├── BenchArrayStringMain.java │ │ ├── BenchBytesMain.java │ │ ├── BenchFieldsMain.java │ │ ├── BenchNullMain.java │ │ ├── BenchRefBytesMain.java │ │ ├── BenchRefStringMain.java │ │ ├── BenchStringMain.java │ │ ├── BenchUtf8StringMain.java │ │ ├── BytesMarshallableTest.java │ │ ├── NestedGenericTest.java │ │ ├── PerfRegressionHolder.java │ │ └── PerfRegressionTest.java │ │ ├── compact │ │ └── DotNetTest.java │ │ ├── converter │ │ ├── Base64Test.java │ │ ├── LongConvertorFieldsTest.java │ │ └── NanoTimeTest.java │ │ ├── domestic │ │ └── streaming │ │ │ ├── CreateUtil.java │ │ │ ├── StreamsTest.java │ │ │ ├── reduction │ │ │ ├── CollectorTest.java │ │ │ ├── CountAccumulationTest.java │ │ │ ├── LastIndexSeenTailerTest.java │ │ │ ├── LastIndexSeenTest.java │ │ │ ├── LastMarketDataPerSymbolTest.java │ │ │ ├── MarketData.java │ │ │ ├── MethodWriterTest.java │ │ │ ├── MinMax.java │ │ │ ├── MinMaxLastMarketDataPerSymbolTest.java │ │ │ └── StreamingDemoMain.java │ │ │ └── streams │ │ │ ├── StreamsDemoTest.java │ │ │ └── StreamsTest.java │ │ ├── dynenum │ │ └── WireDynamicEnumTest.java │ │ ├── examples │ │ ├── MessageRoutingExample.java │ │ ├── Person.java │ │ ├── PersonOps.java │ │ ├── PersonWireMain.java │ │ ├── WireExamples1.java │ │ ├── WireExamples2.java │ │ ├── WireExamples3.java │ │ └── WireExamples4.java │ │ ├── generated │ │ └── ChronicleWireMethodExample.java │ │ ├── internal │ │ ├── MethodWriterClassNameGeneratorTest.java │ │ ├── WireTypeConverterTest.java │ │ ├── WireTypeConverterWithTuplesTest.java │ │ └── stream │ │ │ └── StreamsUtilTest.java │ │ ├── io │ │ └── SyncableMethodWriterTest.java │ │ ├── issue │ │ ├── ClassAliasPool840Test.java │ │ ├── Issue272Test.java │ │ ├── Issue277Test.java │ │ ├── Issue327Test.java │ │ ├── Issue328Test.java │ │ ├── Issue344Test.java │ │ ├── Issue609Test.java │ │ ├── Issue620Test.java │ │ ├── Issue739Test.java │ │ ├── Issue751Test.java │ │ ├── Issue844Test.java │ │ ├── Issue886Test.java │ │ ├── JSON222IndividualTest.java │ │ ├── JSON222Test.java │ │ ├── JSON322Test.java │ │ ├── WireBug35Test.java │ │ ├── WireBug37Test.java │ │ ├── WireBug38Test.java │ │ └── WireBug39Test.java │ │ ├── java17 │ │ ├── Field.java │ │ ├── Group.java │ │ ├── NestedTest.java │ │ └── Required.java │ │ ├── map │ │ ├── MapCustomTest.java │ │ ├── MapMarshallableTest.java │ │ └── MapWireTest.java │ │ ├── marshallable │ │ ├── A2Class.java │ │ ├── AClass.java │ │ ├── B2Class.java │ │ ├── BClass.java │ │ ├── ByteBufferMarshallingTest.java │ │ ├── BytesUsageTest.java │ │ ├── CNFREOnMissingClassTest.java │ │ ├── CompareNaNTest.java │ │ ├── EnumWireTest.java │ │ ├── FieldInfoTest.java │ │ ├── JSONWithAMapTest.java │ │ ├── MarshallableWireTest.java │ │ ├── MarshallableWithOverwriteFalseTest.java │ │ ├── MarshallingEventGroupTest.java │ │ ├── MarshallingJSONStringTest.java │ │ ├── Nested.java │ │ ├── NullFieldMarshallingTest.java │ │ ├── Rung.java │ │ ├── ScalarValues.java │ │ ├── This0AsTransientTest.java │ │ ├── ThreeSequence.java │ │ ├── ThreeSequenceTest.java │ │ ├── TriviallyCopyableMarketData.java │ │ ├── TriviallyCopyableMarketDataTest.java │ │ ├── TwoArrays.java │ │ ├── TwoArraysTest.java │ │ ├── UnknownDatatimeTest.java │ │ ├── WithDefaults.java │ │ ├── WithDefaultsTest.java │ │ └── WithSubstitutionTest.java │ │ ├── method │ │ ├── BrokenChainTest.java │ │ ├── ChronicleEvent.java │ │ ├── ChronicleEventHandler.java │ │ ├── ClusterCommand.java │ │ ├── ClusterCommandListener.java │ │ ├── DefaultMethodHandlingTest.java │ │ ├── Event.java │ │ ├── EventHandler.java │ │ ├── Funding.java │ │ ├── FundingListener.java │ │ ├── FundingOut.java │ │ ├── GenerateMethodWriterInheritanceTest.java │ │ ├── GenericMethodWriterTest.java │ │ ├── HandleSkippedValueReadsTest.java │ │ ├── MarshallableMethodReaderTest.java │ │ ├── MethodIdTest.java │ │ ├── MethodReaderWithHistoryTest.java │ │ ├── MethodWriter2Test.java │ │ ├── MethodWriterByInterfaceTest.java │ │ ├── MethodWriterMarshallableTest.java │ │ ├── MethodWriterProxy2Test.java │ │ ├── MethodWriterProxyTest.java │ │ ├── MethodWriterTest.java │ │ ├── MockDto.java │ │ ├── MockMethods.java │ │ ├── Service.java │ │ ├── SkipsIgnoresEveryThingTest.java │ │ ├── VanillaMethodReaderHierarchyTest.java │ │ ├── VanillaMethodReaderTest.java │ │ └── YamlTextWireTest.java │ │ ├── passthrough │ │ ├── GenericPassTest.java │ │ └── PassThroughTest.java │ │ ├── recursive │ │ ├── Base.java │ │ ├── RecursiveTest.java │ │ ├── ReferToBaseClass.java │ │ └── ReferToSameClass.java │ │ ├── reordered │ │ ├── NestedClass.java │ │ ├── NestedReadSubset.java │ │ ├── OuterClass.java │ │ └── ReorderedTest.java │ │ ├── reuse │ │ ├── ByteArrayResuseTest.java │ │ ├── ModelKeys.java │ │ ├── NestedClass.java │ │ ├── NestedClassTest.java │ │ ├── OuterClass.java │ │ ├── WireCollection.java │ │ ├── WireCollectionTest.java │ │ ├── WireModel.java │ │ ├── WireProperty.java │ │ └── WireUtils.java │ │ ├── security │ │ ├── ApacheStructExploitTest.java │ │ ├── exploit.xml │ │ └── exploit.yaml │ │ ├── serializable │ │ ├── MonetaTest.java │ │ ├── Nested.java │ │ ├── ScalarValues.java │ │ └── SerializableWireTest.java │ │ ├── type │ │ └── conversions │ │ │ └── binary │ │ │ └── ConventionsTest.java │ │ └── utils │ │ └── JavaSourceCodeFormatterTest.java │ └── resources │ ├── CSVWireTest.csv │ ├── FIX42.xml │ ├── FIX42.xsd │ ├── compat │ ├── escaped.yaml │ └── quoted-comment.yaml │ ├── docs │ └── qe_cfg.yaml │ ├── echoing.yaml │ ├── empty-file.yaml │ ├── exception.yaml │ ├── itop.schema.json │ ├── md.yaml │ ├── md2.yaml │ ├── methods-collections-in.yaml │ ├── methods │ ├── in.yaml │ └── out.yaml │ ├── mixed-quotes.yaml │ ├── morse-code.yaml │ ├── my-pojos.yaml │ ├── naked.yaml │ ├── nst_files │ ├── README.adoc │ ├── e-0.yaml │ ├── e-1.yaml │ ├── e-10.yaml │ ├── e-101.yaml │ ├── e-12.yaml │ ├── e-125.yaml │ ├── e-13.yaml │ ├── e-136.yaml │ ├── e-137.yaml │ ├── e-139.yaml │ ├── e-140.yaml │ ├── e-145.yaml │ ├── e-147.yaml │ ├── e-149.yaml │ ├── e-15.yaml │ ├── e-150.yaml │ ├── e-151.yaml │ ├── e-153.yaml │ ├── e-154.yaml │ ├── e-155.yaml │ ├── e-156.yaml │ ├── e-157.yaml │ ├── e-158.yaml │ ├── e-159.yaml │ ├── e-160.yaml │ ├── e-161.yaml │ ├── e-162.yaml │ ├── e-163.yaml │ ├── e-164.yaml │ ├── e-165.yaml │ ├── e-169.yaml │ ├── e-171.yaml │ ├── e-172.yaml │ ├── e-173.yaml │ ├── e-175.yaml │ ├── e-176.yaml │ ├── e-177.yaml │ ├── e-178.yaml │ ├── e-179.yaml │ ├── e-180.yaml │ ├── e-181.yaml │ ├── e-183.yaml │ ├── e-184.yaml │ ├── e-185.yaml │ ├── e-186.yaml │ ├── e-187.yaml │ ├── e-188.yaml │ ├── e-189.yaml │ ├── e-190.yaml │ ├── e-191.yaml │ ├── e-192.yaml │ ├── e-194.yaml │ ├── e-195.yaml │ ├── e-197.yaml │ ├── e-198.yaml │ ├── e-199.yaml │ ├── e-2.yaml │ ├── e-20.yaml │ ├── e-200.yaml │ ├── e-201.yaml │ ├── e-202.yaml │ ├── e-203.yaml │ ├── e-204.yaml │ ├── e-205.yaml │ ├── e-206.yaml │ ├── e-207.yaml │ ├── e-208.yaml │ ├── e-209.yaml │ ├── e-21.yaml │ ├── e-210.yaml │ ├── e-211.yaml │ ├── e-212.yaml │ ├── e-213.yaml │ ├── e-214.yaml │ ├── e-216.yaml │ ├── e-217.yaml │ ├── e-218.yaml │ ├── e-219.yaml │ ├── e-22.yaml │ ├── e-220.yaml │ ├── e-223.yaml │ ├── e-24.yaml │ ├── e-25.yaml │ ├── e-26.yaml │ ├── e-27.yaml │ ├── e-28.yaml │ ├── e-29.yaml │ ├── e-30.yaml │ ├── e-31.yaml │ ├── e-33.yaml │ ├── e-34.yaml │ ├── e-35.yaml │ ├── e-36.yaml │ ├── e-37.yaml │ ├── e-40.yaml │ ├── e-44.yaml │ ├── e-46.yaml │ ├── e-54.yaml │ ├── e-55.yaml │ ├── e-59.yaml │ ├── e-63.yaml │ ├── e-64.yaml │ ├── e-66.yaml │ ├── e-69.yaml │ ├── e-7.yaml │ ├── e-77.yaml │ ├── e-78.yaml │ ├── e-79.yaml │ ├── e-80.yaml │ ├── e-81.yaml │ ├── e-82.yaml │ ├── e-83.yaml │ ├── e-85.yaml │ ├── e-86.yaml │ ├── e-87.yaml │ ├── e-91.yaml │ ├── n_0.json │ ├── n_1.json │ ├── n_10.json │ ├── n_101.json │ ├── n_11.json │ ├── n_12.json │ ├── n_125.json │ ├── n_127.json │ ├── n_13.json │ ├── n_136.json │ ├── n_137.json │ ├── n_139.json │ ├── n_14.json │ ├── n_140.json │ ├── n_145.json │ ├── n_147.json │ ├── n_149.json │ ├── n_15.json │ ├── n_150.json │ ├── n_151.json │ ├── n_153.json │ ├── n_154.json │ ├── n_155.json │ ├── n_156.json │ ├── n_157.json │ ├── n_158.json │ ├── n_159.json │ ├── n_16.json │ ├── n_160.json │ ├── n_161.json │ ├── n_162.json │ ├── n_163.json │ ├── n_164.json │ ├── n_165.json │ ├── n_169.json │ ├── n_17.json │ ├── n_171.json │ ├── n_172.json │ ├── n_173.json │ ├── n_175.json │ ├── n_176.json │ ├── n_177.json │ ├── n_178.json │ ├── n_179.json │ ├── n_18.json │ ├── n_180.json │ ├── n_181.json │ ├── n_183.json │ ├── n_184.json │ ├── n_185.json │ ├── n_186.json │ ├── n_187.json │ ├── n_188.json │ ├── n_189.json │ ├── n_19.json │ ├── n_190.json │ ├── n_191.json │ ├── n_192.json │ ├── n_193.json │ ├── n_194.json │ ├── n_195.json │ ├── n_197.json │ ├── n_198.json │ ├── n_199.json │ ├── n_2.json │ ├── n_20.json │ ├── n_200.json │ ├── n_201.json │ ├── n_202.json │ ├── n_203.json │ ├── n_204.json │ ├── n_205.json │ ├── n_206.json │ ├── n_207.json │ ├── n_208.json │ ├── n_209.json │ ├── n_21.json │ ├── n_210.json │ ├── n_211.json │ ├── n_212.json │ ├── n_213.json │ ├── n_214.json │ ├── n_216.json │ ├── n_217.json │ ├── n_218.json │ ├── n_219.json │ ├── n_22.json │ ├── n_220.json │ ├── n_221.json │ ├── n_222.json │ ├── n_223.json │ ├── n_23.json │ ├── n_24.json │ ├── n_25.json │ ├── n_26.json │ ├── n_27.json │ ├── n_28.json │ ├── n_29.json │ ├── n_3.json │ ├── n_30.json │ ├── n_31.json │ ├── n_32.json │ ├── n_33.json │ ├── n_34.json │ ├── n_35.json │ ├── n_36.json │ ├── n_37.json │ ├── n_4.json │ ├── n_40.json │ ├── n_44.json │ ├── n_46.json │ ├── n_5.json │ ├── n_54.json │ ├── n_55.json │ ├── n_59.json │ ├── n_6.json │ ├── n_63.json │ ├── n_64.json │ ├── n_66.json │ ├── n_69.json │ ├── n_7.json │ ├── n_77.json │ ├── n_78.json │ ├── n_79.json │ ├── n_8.json │ ├── n_80.json │ ├── n_81.json │ ├── n_82.json │ ├── n_83.json │ ├── n_85.json │ ├── n_86.json │ ├── n_87.json │ ├── n_9.json │ ├── n_91.json │ ├── y_100.json │ ├── y_102.json │ ├── y_103.json │ ├── y_104.json │ ├── y_105.json │ ├── y_106.json │ ├── y_107.json │ ├── y_108.json │ ├── y_109.json │ ├── y_110.json │ ├── y_111.json │ ├── y_112.json │ ├── y_113.json │ ├── y_114.json │ ├── y_115.json │ ├── y_116.json │ ├── y_117.json │ ├── y_118.json │ ├── y_119.json │ ├── y_120.json │ ├── y_121.json │ ├── y_122.json │ ├── y_123.json │ ├── y_124.json │ ├── y_126.json │ ├── y_128.json │ ├── y_129.json │ ├── y_130.json │ ├── y_131.json │ ├── y_132.json │ ├── y_133.json │ ├── y_134.json │ ├── y_135.json │ ├── y_138.json │ ├── y_141.json │ ├── y_142.json │ ├── y_143.json │ ├── y_144.json │ ├── y_146.json │ ├── y_148.json │ ├── y_152.json │ ├── y_166.json │ ├── y_167.json │ ├── y_168.json │ ├── y_170.json │ ├── y_174.json │ ├── y_182.json │ ├── y_196.json │ ├── y_215.json │ ├── y_38.json │ ├── y_39.json │ ├── y_41.json │ ├── y_42.json │ ├── y_43.json │ ├── y_45.json │ ├── y_47.json │ ├── y_48.json │ ├── y_49.json │ ├── y_50.json │ ├── y_51.json │ ├── y_52.json │ ├── y_53.json │ ├── y_56.json │ ├── y_57.json │ ├── y_58.json │ ├── y_60.json │ ├── y_61.json │ ├── y_62.json │ ├── y_65.json │ ├── y_67.json │ ├── y_68.json │ ├── y_70.json │ ├── y_71.json │ ├── y_72.json │ ├── y_73.json │ ├── y_74.json │ ├── y_75.json │ ├── y_76.json │ ├── y_84.json │ ├── y_88.json │ ├── y_89.json │ ├── y_90.json │ ├── y_92.json │ ├── y_93.json │ ├── y_94.json │ ├── y_95.json │ ├── y_96.json │ ├── y_97.json │ ├── y_98.json │ └── y_99.json │ ├── snake-yaml-examples │ ├── any-object-example-b.yaml │ ├── any-object-example.yaml │ ├── list-bean-1.yaml │ ├── list-bean-2.yaml │ ├── list-bean-2b.yaml │ ├── list-bean-3.yaml │ ├── list-bean-4.yaml │ ├── list-bean-4b.yaml │ ├── map-bean-1.yaml │ ├── map-bean-10.yaml │ ├── map-bean-10b.yaml │ ├── map-bean-11.yaml │ ├── map-bean-11b.yaml │ ├── map-bean-12.yaml │ ├── map-bean-12b.yaml │ ├── map-bean-13.yaml │ ├── map-bean-13b.yaml │ ├── map-bean-1b.yaml │ ├── map-bean-2.yaml │ ├── map-bean-2b.yaml │ ├── map-recursive-1.yaml │ ├── map-recursive-1_1.yaml │ ├── map-recursive-2.yaml │ ├── map-recursive-3.yaml │ ├── map-recursive-4.yaml │ ├── set-bean-1.yaml │ ├── set-bean-1b.yaml │ ├── set-bean-2.yaml │ ├── set-bean-3.yaml │ ├── set-bean-4.yaml │ ├── set-bean-5.yaml │ └── set-bean-6.yaml │ └── yaml │ ├── complex-mapping.yaml │ ├── int-mapping-incomplete.yaml │ ├── int-mapping.yaml │ ├── k8s │ ├── example1.yaml │ ├── example2.yaml │ ├── example3.yaml │ ├── example4.yaml │ ├── example5.yaml │ ├── example6.yaml │ ├── example7.yaml │ ├── example8.yaml │ └── example9.yaml │ ├── sample1.yaml │ ├── sample2.yaml │ ├── services.yaml │ └── spec │ ├── 2_10_NodeAppearsTwiceInThisDocument.out.yaml │ ├── 2_10_NodeAppearsTwiceInThisDocument.yaml │ ├── 2_11MappingBetweenSequences.yaml │ ├── 2_12CompactNestedMapping.out.yaml │ ├── 2_12CompactNestedMapping.yaml │ ├── 2_13InLiteralsNewlinesArePreserved.out.yaml │ ├── 2_13InLiteralsNewlinesArePreserved.yaml │ ├── 2_14InThefoldedScalars.out.yaml │ ├── 2_14InThefoldedScalars.yaml │ ├── 2_15FoldedNewlines.yaml │ ├── 2_16IndentationDeterminesScope.yaml │ ├── 2_17QuotedScalars.out.yaml │ ├── 2_17QuotedScalars.yaml │ ├── 2_18Multi_lineFlowScalars.yaml │ ├── 2_18Multi_lineFlowScalarsFixed.yaml │ ├── 2_19Integers.out.yaml │ ├── 2_19Integers.yaml │ ├── 2_1_SequenceOfScalars.out.yaml │ ├── 2_1_SequenceOfScalars.yaml │ ├── 2_20FloatingPoint.yaml │ ├── 2_21Miscellaneous.yaml │ ├── 2_21MiscellaneousBis.out.yaml │ ├── 2_21MiscellaneousBis.yaml │ ├── 2_21MiscellaneousFixed.yaml │ ├── 2_22Timestamps.yaml │ ├── 2_23VariousExplicitTags.out.yaml │ ├── 2_23VariousExplicitTags.yaml │ ├── 2_24GlobalTags.yaml │ ├── 2_25UnorderedSets.yaml │ ├── 2_26OrderedMappings.yaml │ ├── 2_27Invoice.yaml │ ├── 2_28LogFile.yaml │ ├── 2_2_MappingScalarsToScalars.out.yaml │ ├── 2_2_MappingScalarsToScalars.yaml │ ├── 2_3_MappingScalarsToSequences.out.yaml │ ├── 2_3_MappingScalarsToSequences.yaml │ ├── 2_4_SequenceOfMappings.out.yaml │ ├── 2_4_SequenceOfMappings.yaml │ ├── 2_5_SequenceOfSequences.out.yaml │ ├── 2_5_SequenceOfSequences.yaml │ ├── 2_6_MappingOfMappings.out.yaml │ ├── 2_6_MappingOfMappings.yaml │ ├── 2_7_TwoDocumentsInAStream.out.yaml │ ├── 2_7_TwoDocumentsInAStream.yaml │ ├── 2_8_PlayByPlayFeed.yaml │ ├── 2_9_SingleDocumentWithTwoComments.out.yaml │ ├── 2_9_SingleDocumentWithTwoComments.yaml │ ├── README.adoc │ ├── spec.pdf │ └── types │ ├── map.yaml │ ├── map_mixed_tags.yaml │ ├── merge.yaml │ ├── omap.yaml │ ├── pairs.yaml │ ├── seq.yaml │ ├── set.yaml │ ├── v.yaml │ └── value.yaml ├── system.properties └── systemProperties.adoc /.gitignore: -------------------------------------------------------------------------------- 1 | ### How to update 2 | # This is copied from OpenHFT/.gitignore 3 | # update the original and run OpenHFT/update_gitignore.sh 4 | 5 | ### Compiled class file 6 | *.class 7 | 8 | ### Package Files 9 | *.jar 10 | *.war 11 | *.ear 12 | 13 | ### Log file 14 | *.log 15 | 16 | ### IntelliJ 17 | *.iml 18 | *.ipr 19 | *.iws 20 | .idea 21 | compat_reports 22 | .attach_pid* 23 | 24 | ### Virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 25 | hs_err_pid* 26 | 27 | ### Maven template 28 | target/ 29 | pom.xml.tag 30 | pom.xml.releaseBackup 31 | pom.xml.versionsBackup 32 | pom.xml.next 33 | release.properties 34 | 35 | ### Eclipse template 36 | *.pydevproject 37 | .metadata 38 | .gradle 39 | bin/ 40 | tmp/ 41 | *.tmp 42 | *.bak 43 | *.swp 44 | *~.nib 45 | local.properties 46 | .classpath 47 | .project 48 | .settings/ 49 | .loadpath 50 | 51 | ### Queue files 52 | *.cq4t 53 | *.cq4 54 | 55 | .DS_Store 56 | -------------------------------------------------------------------------------- /demo/java17setup.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # 4 | # Copyright 2016-2022 chronicle.software 5 | # 6 | # https://chronicle.software 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | export MAVEN_OPTS="--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \ 22 | --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \ 23 | --add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \ 24 | --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED \ 25 | --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED" -------------------------------------------------------------------------------- /demo/src/main/resources/cfg1.yaml: -------------------------------------------------------------------------------- 1 | !Data1 { 2 | name: Tom, 3 | age: 25, 4 | address: "21 High street, Liverpool" 5 | } 6 | -------------------------------------------------------------------------------- /demo/src/main/resources/cfg2.yaml: -------------------------------------------------------------------------------- 1 | !run.chronicle.wire.demo.Example7$Data2 { 2 | name: Helen, 3 | age: 19, 4 | address: "15 Royal Way, Liverpool" 5 | } 6 | -------------------------------------------------------------------------------- /demo/system.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2016-2022 chronicle.software 3 | # 4 | # https://chronicle.software 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | # Tracing if resources are closed/released correctly. 20 | jvm.resource.tracing=true 21 | disable.resource.warning=true 22 | # for profiling 23 | jvm.safepoint.enabled=false 24 | wire.generate.v2=false 25 | # reduce logging of the announcer 26 | chronicle.announcer.disable=true 27 | report.unoptimised=true -------------------------------------------------------------------------------- /images/Wire_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenHFT/Chronicle-Wire/c8ca01bb62e9b6e46318624a6a4a96b4d5b21d38/images/Wire_line.png -------------------------------------------------------------------------------- /images/buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenHFT/Chronicle-Wire/c8ca01bb62e9b6e46318624a6a4a96b4d5b21d38/images/buffer.png -------------------------------------------------------------------------------- /jlbh-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright 2016-2022 chronicle.software 4 | # 5 | # https://chronicle.software 6 | # 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | # 19 | 20 | mvn clean test-compile exec:java -Dexec.mainClass="net.openhft.chronicle.wire.TriviallyCopyableJLBH" -Dexec.classpathScope=test 21 | -------------------------------------------------------------------------------- /jlbhBenchmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenHFT/Chronicle-Wire/c8ca01bb62e9b6e46318624a6a4a96b4d5b21d38/jlbhBenchmark.png -------------------------------------------------------------------------------- /marshallingperf/system.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2016-2022 chronicle.software 3 | # 4 | # https://chronicle.software 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | # Tracing if resources are closed/released correctly. 20 | jvm.resource.tracing=false 21 | # for profiling 22 | jvm.safepoint.enabled=false 23 | wire.generate.v2=false 24 | # reduce logging of the announcer 25 | chronicle.announcer.disable=true 26 | report.unoptimised=true -------------------------------------------------------------------------------- /microbenchmarks/src/main/java/net/openhft/chronicle/wire/benchmarks/Side.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015-2020 chronicle.software 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU Lesser General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this program. If not, see . 15 | */ 16 | 17 | package net.openhft.chronicle.wire.benchmarks; 18 | 19 | public enum Side { 20 | Buy, Sell 21 | } 22 | -------------------------------------------------------------------------------- /microbenchmarks/system.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2016-2022 chronicle.software 3 | # 4 | # https://chronicle.software 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | # Tracing if resources are closed/released correctly. 20 | jvm.resource.tracing=false 21 | # for profiling 22 | jvm.safepoint.enabled=false 23 | # reduce logging of the announcer 24 | chronicle.announcer.disable=true 25 | report.unoptimised=true -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/AsMarshallable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | import java.lang.annotation.ElementType; 22 | import java.lang.annotation.Retention; 23 | import java.lang.annotation.RetentionPolicy; 24 | import java.lang.annotation.Target; 25 | 26 | /** 27 | * This annotation indicates that the associated field or parameter should be treated as 28 | * a {@code Marshallable} type, implying it should be serialized or deserialized accordingly. 29 | * It can be applied to fields or method parameters to provide metadata about their marshalling behavior. 30 | */ 31 | @Retention(RetentionPolicy.RUNTIME) // Indicates that this annotation should be retained at runtime. 32 | @Target({ElementType.FIELD, ElementType.PARAMETER}) // Specifies that this annotation can be applied to fields and method parameters. 33 | public @interface AsMarshallable { 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/BytesInBinaryMarshallable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | /** 21 | * Represents an abstract base class for binary marshallables that primarily deal with bytes. 22 | * By default, this class does not use self-describing messages. 23 | *

24 | * This class extends the {@link AbstractCommonMarshallable} to provide common functionalities 25 | * shared among marshallables. 26 | */ 27 | public abstract class BytesInBinaryMarshallable extends AbstractCommonMarshallable { 28 | 29 | /** 30 | * Determines whether this marshallable uses self-describing messages. 31 | * 32 | * @return {@code false} indicating that this marshallable does not use self-describing messages by default. 33 | */ 34 | @Override 35 | public boolean usesSelfDescribingMessage() { 36 | return false; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/CommentAnnotationNotifier.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | /** 21 | * Represents an interface to notify whether a certain element has a preceding comment annotation. 22 | * Implementers can use this to handle scenarios where knowledge of preceding comments is required. 23 | */ 24 | interface CommentAnnotationNotifier { 25 | 26 | /** 27 | * Notifies the implementer whether a certain element has a preceding comment annotation. 28 | * 29 | * @param hasCommentAnnotation A flag indicating if the element has a preceding comment. 30 | * True if it has, otherwise false. 31 | */ 32 | void hasPrecedingComment(boolean hasCommentAnnotation); 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/FieldNumberParselet.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | import net.openhft.chronicle.core.io.InvalidMarshallableException; 21 | 22 | /** 23 | * Represents a parselet to process field numbers in a wire format. 24 | * Implementations should provide logic to read data based on the field number from a wire input source. 25 | */ 26 | public interface FieldNumberParselet { 27 | 28 | /** 29 | * Reads and processes data corresponding to the given field number (methodId) from the wire input. 30 | * 31 | * @param methodId The field number or methodId that denotes which data to read. 32 | * @param wire The wire input source from which the data is read. 33 | * @throws InvalidMarshallableException If there's an error in reading or processing the data. 34 | */ 35 | void readOne(long methodId, WireIn wire) throws InvalidMarshallableException; 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/KeyedMarshallable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | import net.openhft.chronicle.bytes.Bytes; 21 | import org.jetbrains.annotations.NotNull; 22 | 23 | public interface KeyedMarshallable { 24 | 25 | /** 26 | * Writes the key of the current instance into the provided {@code Bytes} object. 27 | * This default implementation utilizes the {@code Wires.writeKey} method. 28 | * 29 | * @param bytes The {@code Bytes} object into which the key of the current instance is written. 30 | */ 31 | @SuppressWarnings("rawtypes") 32 | default void writeKey(@NotNull Bytes bytes) { 33 | Wires.writeKey(this, bytes); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/MarshallableParser.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | import org.jetbrains.annotations.NotNull; 21 | 22 | /** 23 | * This is the {@code MarshallableParser} functional interface. 24 | * It provides a contract for parsing methods that convert a given {@link ValueIn} into an instance of type {@code T}. 25 | * Designed to be used in scenarios where marshalling is required to transform input values into desired data types. 26 | * 27 | * @param the type of the object that will be produced after parsing the input value. 28 | */ 29 | @FunctionalInterface 30 | public interface MarshallableParser { 31 | 32 | /** 33 | * Parses the provided {@code ValueIn} into an instance of type {@code T}. 34 | * 35 | * @param valueIn the input value to be parsed. 36 | * @return the parsed instance of type {@code T}. 37 | */ 38 | @NotNull 39 | T parse(ValueIn valueIn); 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/MethodDelegate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | /** 22 | * Represents an interface that provides a mechanism for method delegation. 23 | * Implementors of this interface can set a delegate to which method invocations are 24 | * forwarded. By using this interface, users can achieve behavior modification, 25 | * augmentation, or decoration of method calls by setting appropriate delegates. 26 | * 27 | * @param The type of the delegate to which method calls will be forwarded. 28 | */ 29 | public interface MethodDelegate { 30 | 31 | /** 32 | * Sets the delegate to which method invocations will be forwarded. 33 | *

34 | * This mechanism allows the delegation of method calls to an alternate implementation, 35 | * enabling behaviors like logging, mocking, or additional processing. 36 | * 37 | * @param delegate The object that will receive the delegated method calls. 38 | */ 39 | void delegate(OUT delegate); 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/MethodWriterValidationException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | /** 22 | * The {@code MethodWriterValidationException} is a specialized exception class that indicates a failure 23 | * in generating a {@link MethodWriter}. This exception type prevents falling back to the default proxy 24 | * implementation. It is typically thrown when there are invalid conditions or configurations related to 25 | * {@link MethodWriter} creation. 26 | */ 27 | public class MethodWriterValidationException extends IllegalArgumentException { 28 | private static final long serialVersionUID = 0L; 29 | 30 | /** 31 | * Constructs a new {@code MethodWriterValidationException} with the specified detail message. 32 | * 33 | * @param s the detail message explaining the reason for the exception. 34 | */ 35 | public MethodWriterValidationException(String s) { 36 | super(s); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/Quotes.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | /** 21 | * Enumerates the types of quotation marks. 22 | * This enum represents the most common quotation marks: none, single, and double. 23 | * Each enumeration value is associated with its corresponding character representation. 24 | */ 25 | enum Quotes { 26 | 27 | /** Represents the absence of a quotation mark. */ 28 | NONE(' '), 29 | 30 | /** Represents a single quotation mark. */ 31 | SINGLE('\''), 32 | 33 | /** Represents a double quotation mark. */ 34 | DOUBLE('"'); 35 | 36 | // The character representation of the quotation mark 37 | final char q; 38 | 39 | /** 40 | * Constructs a new instance of {@code Quotes} with the provided character representation. 41 | * 42 | * @param q The character representation of the quotation mark. 43 | */ 44 | Quotes(char q) { 45 | this.q = q; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/RawText.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | /** 21 | * Represents a container for raw textual data. 22 | * The primary purpose of this class is to encapsulate a text 23 | * while providing a simple structure for raw text handling. 24 | */ 25 | class RawText { 26 | // The encapsulated raw textual data 27 | String text; 28 | 29 | /** 30 | * Constructs a new instance of {@code RawText} initialized with 31 | * the provided CharSequence. 32 | * 33 | * @param text The CharSequence to be encapsulated by this instance. 34 | */ 35 | public RawText(CharSequence text) { 36 | this.text = text.toString(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/SelfDescribingMarshallable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | /** 21 | * Represents an abstraction of marshallable objects that are self-describing by default. 22 | * This class extends {@code AbstractCommonMarshallable} and ensures that instances 23 | * inherently use self-describing messages. 24 | */ 25 | public abstract class SelfDescribingMarshallable extends AbstractCommonMarshallable { 26 | @Override 27 | public boolean usesSelfDescribingMessage() { 28 | return true; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/UnexpectedFieldHandlingException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 Chronicle Software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | /** 21 | * Wrapper exception used to encapsulate and propagate exceptions to high-level API calls 22 | * that arise from {@link ReadMarshallable#unexpectedField(Object, ValueIn)}. 23 | * Typically, this is thrown when an unexpected field is encountered during marshalling or 24 | * unmarshalling processes. 25 | */ 26 | public class UnexpectedFieldHandlingException extends RuntimeException { 27 | private static final long serialVersionUID = 0L; 28 | 29 | /** 30 | * Constructs a new UnexpectedFieldHandlingException with the provided underlying cause. 31 | * 32 | * @param cause The root cause of this exception, typically originating from 33 | * {@link ReadMarshallable#unexpectedField(Object, ValueIn)}. 34 | */ 35 | public UnexpectedFieldHandlingException(Throwable cause) { 36 | super(cause); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/Validate.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire; 2 | 3 | /** 4 | * This is the Validate interface. 5 | * Implementations of this interface are responsible for validating objects 6 | * based on specific criteria or conditions. 7 | * The purpose of the validate method is to ensure the correctness or suitability 8 | * of the object in question. 9 | */ 10 | public interface Validate { 11 | 12 | /** 13 | * Validates the provided object based on specific criteria or conditions. 14 | * If the object does not meet the conditions, the method might throw a 15 | * runtime exception or exhibit other behavior as defined by the 16 | * implementation. It is recommended for implementers to clearly document 17 | * the validation rules and potential outcomes. 18 | * 19 | * @param o The object to be validated. 20 | */ 21 | void validate(Object o); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/WireParselet.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | import net.openhft.chronicle.core.io.InvalidMarshallableException; 21 | 22 | /** 23 | * Represents a functional interface that can process wire input based on a given 24 | * character sequence key and a value input. The `WireParselet` can be seen as a 25 | * specific action or handler for a particular key found in the wire input. 26 | */ 27 | @FunctionalInterface 28 | public interface WireParselet { 29 | 30 | /** 31 | * Consumes and processes a wire input based on a given character sequence 32 | * and a value input. 33 | * 34 | * @param s The character sequence (usually representing a key) from the wire input. 35 | * @param in The value associated with the key in the wire input. 36 | * @throws InvalidMarshallableException If there's an issue with processing the data. 37 | */ 38 | void accept(CharSequence s, ValueIn in) throws InvalidMarshallableException; 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/WriteAfterEOFException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | /** 21 | * This is the WriteAfterEOFException class extending IllegalStateException. 22 | * The exception is thrown when there's an attempt to write data after the End-Of-File (EOF) marker. 23 | * This is typically used to safeguard against improper file manipulation and to maintain data integrity. 24 | */ 25 | public class WriteAfterEOFException extends IllegalStateException { 26 | private static final long serialVersionUID = 0L; 27 | 28 | /** 29 | * Constructs a new instance of WriteAfterEOFException with a default error message. 30 | * The message indicates that writing after EOF is not permitted. 31 | */ 32 | public WriteAfterEOFException() { 33 | super("You should not be able to write at EOF"); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/domestic/InternalWire.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire.domestic; 2 | 3 | public interface InternalWire { 4 | void forceNotInsideHeader(); 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/domestic/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | /** 20 | * This package and any and all sub-packages contains strictly internal classes reserved for Chronicle Software. 21 | * Domestic classes shall never be used directly by end-user code. Instead, they are only available 22 | * for use internally by other Chronicle libraries. 23 | *

24 | * Specifically, the following actions (including, but not limited to) are not allowed 25 | * on internal classes and packages: 26 | *

31 | *

32 | * The classes in this package and any sub-package are subject to change at any time for any reason. 33 | */ 34 | package net.openhft.chronicle.wire.domestic; 35 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/internal/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | /** 20 | * This package and any and all sub-packages contains strictly internal classes for this Chronicle library. 21 | * Internal classes shall never be used directly. 22 | *

23 | * Specifically, the following actions (including, but not limited to) are not allowed 24 | * on internal classes and packages: 25 | *

30 | *

31 | * The classes in this package and any sub-package are subject to 32 | * changes at any time for any reason. 33 | */ 34 | package net.openhft.chronicle.wire.internal; 35 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/utils/JsonSourceCodeFormatter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.utils; 20 | 21 | /** 22 | * This is the JsonSourceCodeFormatter class, extending the functionality of the {@link SourceCodeFormatter} class. 23 | * It provides a specialized formatting behavior tailored for JSON content. By default, it uses an indentation of 2 spaces, 24 | * adhering to common standards for JSON formatting. 25 | */ 26 | public class JsonSourceCodeFormatter extends SourceCodeFormatter { 27 | 28 | /** 29 | * Constructor for the JsonSourceCodeFormatter class. 30 | * Initializes the formatter with an indentation of 2 spaces. 31 | */ 32 | public JsonSourceCodeFormatter() { 33 | super(2); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/utils/MethodReaderStatus.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.utils; 20 | 21 | public enum MethodReaderStatus { 22 | EMPTY, 23 | HISTORY, 24 | KNOWN, 25 | UNKNOWN 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/net/openhft/chronicle/wire/utils/RecordHistory.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire.utils; 2 | 3 | /** 4 | * Write a history before each message 5 | * 6 | * @param interface of messages with prepended history 7 | */ 8 | public interface RecordHistory { 9 | T history(net.openhft.chronicle.wire.VanillaMessageHistory history); 10 | } 11 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/AbstractCommonMarshallableTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | import org.junit.jupiter.api.Test; 22 | 23 | import static org.junit.jupiter.api.Assertions.assertFalse; 24 | 25 | /** 26 | * A test class for validating the behavior of AbstractCommonMarshallable. 27 | * This class extends the base test functionalities provided by WireTestCommon. 28 | */ 29 | class AbstractCommonMarshallableTest extends net.openhft.chronicle.wire.WireTestCommon { 30 | 31 | /** 32 | * Tests the default behavior of AbstractCommonMarshallable 33 | * to ensure it doesn't use self-describing messages by default. 34 | */ 35 | @Test 36 | void doesNotUseSelfDescribingMessagesByDefault() { 37 | // Assert that a new instance of AbstractCommonMarshallable 38 | // doesn't use self-describing messages by default 39 | assertFalse(new AbstractCommonMarshallable() { 40 | }.usesSelfDescribingMessage()); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/BinaryToTextTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | import net.openhft.chronicle.bytes.Bytes; 21 | import org.jetbrains.annotations.NotNull; 22 | import org.junit.Test; 23 | 24 | import static org.junit.Assert.assertEquals; 25 | 26 | public class BinaryToTextTest extends WireTestCommon { 27 | 28 | // Test conversion of binary data to text representation 29 | @Test 30 | public void test() { 31 | Bytes tbytes = Bytes.allocateElasticOnHeap(); 32 | @NotNull Wire tw = new BinaryWire(tbytes); 33 | tw.usePadding(true); 34 | tw.writeDocument(false, w -> w.write(() -> "key").text("hello")); 35 | assertEquals("" + 36 | "--- !!data #binary\n" + 37 | "key: hello\n", 38 | Wires.fromSizePrefixedBlobs(tw)); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/CcyPair.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire; 2 | 3 | import net.openhft.chronicle.core.pool.EnumInterner; 4 | 5 | enum CcyPair { 6 | EURUSD, GBPUSD, EURCHF; 7 | 8 | static final EnumInterner INTERNER = new EnumInterner<>(CcyPair.class); 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/ChainedMethodsTestChainedMethodsTest$1MethodReader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenHFT/Chronicle-Wire/c8ca01bb62e9b6e46318624a6a4a96b4d5b21d38/src/test/java/net/openhft/chronicle/wire/ChainedMethodsTestChainedMethodsTest$1MethodReader.java -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/CharSequenceObjectMapTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | import org.junit.Test; 22 | 23 | import static org.junit.Assert.assertEquals; 24 | 25 | public class CharSequenceObjectMapTest extends WireTestCommon { 26 | 27 | // Test the put operation of the CharSequenceObjectMap 28 | @Test 29 | public void put() { 30 | // Initialize a new CharSequenceObjectMap with a capacity of 10 31 | CharSequenceObjectMap map = new CharSequenceObjectMap<>(10); 32 | 33 | // Add key-value pairs to the map for values from 10 to 19 34 | for (int i = 10; i < 20; i++) { 35 | map.put("" + i, "" + i); 36 | } 37 | 38 | // Verify that the added key-value pairs can be successfully retrieved from the map 39 | for (int i = 10; i < 20; i++) { 40 | assertEquals("" + i, map.get("" + i)); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/Fun.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | import net.openhft.chronicle.core.util.SerializableFunction; 21 | import org.jetbrains.annotations.NotNull; 22 | 23 | // Enum representing a set of functions that manipulate strings 24 | public enum Fun implements SerializableFunction { 25 | 26 | // Enum instance that appends an "A" to the given string 27 | ADD_A { 28 | // Apply the function to the input string 29 | @NotNull 30 | @Override 31 | public String apply(String s) { 32 | // Append 'A' to the given string and return 33 | return s + "A"; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/GenerateFIXWireKey.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | import java.io.IOException; 21 | import java.nio.file.Files; 22 | import java.nio.file.Paths; 23 | 24 | // Class to generate FIX Wire keys from an XML file 25 | public class GenerateFIXWireKey { 26 | 27 | // Main method to read and process the XML 28 | public static void main(String[] args) throws IOException { 29 | // Stream lines from the XML file 30 | Files.lines(Paths.get("src/test/resources/FIX42.xml")) 31 | // Filter lines that contain a specific field attribute 32 | .filter(s -> s.contains("field number='")) 33 | // Split each line based on the single quote character 34 | .map(s -> s.split("'")) 35 | // For each processed line, print out the key and its associated number 36 | .forEach(arr ->System.out.printf("\t%s(%s),%n", arr[3], arr[1])); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/ILast.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | // An interface defining a method for echoing a text 22 | public interface ILast { 23 | void echo(String text); 24 | } 25 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/IMid.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | // An interface defining a method to get the next interface `ILast` based on a long parameter 22 | public interface IMid { 23 | ILast next(long x); 24 | } 25 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/IMid2.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | // Another interface defining methods to get the next interface `ILast` and to handle DTO operations 22 | interface IMid2 { 23 | ILast next2(String a); 24 | 25 | void dto(DMOuterClass dmoc); 26 | } 27 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/ITop.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | // An interface that defines various methods with different parameter requirements. 22 | interface ITop { 23 | // Define a method that takes a string and returns an IMid object. 24 | IMid mid(String name); 25 | 26 | // Define a method that takes a string and returns an IMid2 object. 27 | IMid2 mid2(String name); 28 | 29 | // Define a method with no arguments that returns an IMid object. 30 | IMid midNoArg(); 31 | 32 | // Define a method that takes an int and a long and returns an IMid object. 33 | IMid midTwoArgs(int i, long l); 34 | } 35 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/IntConversionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenHFT/Chronicle-Wire/c8ca01bb62e9b6e46318624a6a4a96b4d5b21d38/src/test/java/net/openhft/chronicle/wire/IntConversionTest.java -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/MethodReaderArgumentsRecycleProxyTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | import org.junit.After; 21 | 22 | // Test class extending MethodReaderArgumentsRecycleTest to test behavior of method readers when using proxies 23 | public class MethodReaderArgumentsRecycleProxyTest extends MethodReaderArgumentsRecycleTest { 24 | @Override 25 | public void setUp() { 26 | // Disable proxy code generation for the duration of the tests 27 | System.setProperty("disableReaderProxyCodegen", "true"); 28 | super.setUp(); 29 | } 30 | 31 | @After 32 | public void after() { 33 | // Clear the property to re-enable proxy code generation 34 | System.clearProperty("disableReaderProxyCodegen"); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/MyClass.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire; 2 | 3 | import net.openhft.chronicle.wire.SelfDescribingMarshallable; 4 | 5 | // Define a class representing a marshallable entity with a message field 6 | public class MyClass extends SelfDescribingMarshallable { 7 | String msg; // Field to hold a message string 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/MyClass2.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire; 2 | 3 | // Define a class representing a marshallable entity containing another custom marshallable object 4 | public class MyClass2 extends SelfDescribingMarshallable { 5 | 6 | MyClass3 myClass; // Field to hold an instance of MyClass3 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/MyClass3.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire; 2 | 3 | import net.openhft.chronicle.wire.SelfDescribingMarshallable; 4 | 5 | // Define a class representing a marshallable entity with a single string field 'x' 6 | public class MyClass3 extends SelfDescribingMarshallable { 7 | String x; // Field to store a string value 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/ObjectWithTreeMap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | import java.util.TreeMap; 22 | 23 | // Class ObjectWithTreeMap extends SelfDescribingMarshallable and contains a TreeMap 24 | class ObjectWithTreeMap extends SelfDescribingMarshallable { 25 | // Declaration and instantiation of a TreeMap, mapping String keys to String values 26 | final TreeMap map = new TreeMap<>(); 27 | } 28 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/Outer1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | class Outer1 { 22 | public interface InnerInterface { 23 | void x(String message); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/Outer2.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | class Outer2 { 22 | interface InnerInterface { 23 | void y(String message); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/TWTSingleton.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016-2020 chronicle.software 3 | */ 4 | 5 | package net.openhft.chronicle.wire; 6 | 7 | enum TWTSingleton { 8 | INSTANCE 9 | } 10 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/TestIntConversion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenHFT/Chronicle-Wire/c8ca01bb62e9b6e46318624a6a4a96b4d5b21d38/src/test/java/net/openhft/chronicle/wire/TestIntConversion.java -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/Update.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2020 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | package net.openhft.chronicle.wire; 19 | 20 | import net.openhft.chronicle.core.util.SerializableUpdater; 21 | import org.jetbrains.annotations.NotNull; 22 | 23 | import java.util.concurrent.atomic.AtomicLong; 24 | 25 | public enum Update implements SerializableUpdater { 26 | 27 | // Enumeration constant that represents an INCREMENT update. 28 | // It increments the provided AtomicLong by 1. 29 | INCR { 30 | @Override 31 | public void update(@NotNull AtomicLong aLong) { 32 | aLong.incrementAndGet(); 33 | } 34 | }, 35 | 36 | // Enumeration constant that represents a DECREMENT update. 37 | // It decrements the provided AtomicLong by 1. 38 | DECR { 39 | @Override 40 | public void update(@NotNull AtomicLong aLong) { 41 | aLong.decrementAndGet(); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/WMTwoFields.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | // Class WMTwoFields, a data structure that extends SelfDescribingMarshallable 22 | // to utilize its serialization/deserialization and other common functionalities. 23 | class WMTwoFields extends SelfDescribingMarshallable { 24 | 25 | // 'id' field with a custom long conversion using WordsLongConverter, 26 | // facilitating specific serialization/deserialization of the integer as a long. 27 | @LongConversion(WordsLongConverter.class) 28 | int id; 29 | 30 | // 'ts' field (presumably for timestamp) with a custom long conversion using 31 | // MicroTimestampLongConverter, facilitating specific serialization/deserialization 32 | // of the long value, typically to/from a microsecond-precision timestamp. 33 | @LongConversion(MicroTimestampLongConverter.class) 34 | long ts; 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/WireParserTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire; 20 | 21 | import net.openhft.chronicle.bytes.Bytes; 22 | import org.junit.Test; 23 | 24 | import static org.junit.Assert.assertEquals; 25 | 26 | public class WireParserTest extends WireTestCommon { 27 | 28 | @Test 29 | public void noOpReadOne() { 30 | // Create an elastic byte buffer with an initial capacity of 128 bytes. 31 | BinaryWire wire = new BinaryWire(Bytes.allocateElasticOnHeap(128)); 32 | 33 | // Write a sample string "Hello world" to the buffer. 34 | wire.bytes().writeUtf8("Hello world"); 35 | 36 | // Skip all readable bytes in the wire. 37 | WireParser.skipReadable(-1, wire); 38 | 39 | // Assert that there are no more bytes left to read from the wire. 40 | assertEquals(0, wire.bytes().readRemaining()); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/bytesmarshallable/BenchArrayStringMain.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.bytesmarshallable; 20 | 21 | // Class: BenchArrayStringMain 22 | // A performance benchmarking class designed to test the efficiency 23 | // and performance of operations related to array strings. 24 | public class BenchArrayStringMain { 25 | 26 | // Main method: entry point of the application, intended for 27 | // running the benchmarking test related to array strings. 28 | public static void main(String[] args) { 29 | // Instantiate a PerfRegressionHolder object. 30 | PerfRegressionHolder main = new PerfRegressionHolder(); 31 | 32 | // Perform the benchmark test specific to array string operations. 33 | main.doTest(main::benchArrayString); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/bytesmarshallable/BenchBytesMain.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.bytesmarshallable; 20 | 21 | // Class: BenchBytesMain 22 | // A performance benchmarking class designed to test the efficiency 23 | // and performance of byte-related operations. 24 | public class BenchBytesMain { 25 | 26 | // Main method: entry point of the application, intended for 27 | // running the benchmarking test related to bytes operations. 28 | public static void main(String[] args) { 29 | // Instantiate a PerfRegressionHolder object. 30 | PerfRegressionHolder main = new PerfRegressionHolder(); 31 | 32 | // Perform the benchmark test specific to byte operations. 33 | main.doTest(main::benchBytes); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/bytesmarshallable/BenchFieldsMain.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.bytesmarshallable; 20 | 21 | // Class: BenchFieldsMain 22 | // A performance benchmarking class designed to test the efficiency 23 | // and performance of field-related operations. 24 | public class BenchFieldsMain { 25 | 26 | // Main method: entry point of the application, intended for 27 | // running the benchmarking test related to fields operations. 28 | public static void main(String[] args) { 29 | // Instantiate a PerfRegressionHolder object. 30 | PerfRegressionHolder main = new PerfRegressionHolder(); 31 | 32 | // Perform the benchmark test specific to field operations. 33 | main.doTest(main::benchFields); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/bytesmarshallable/BenchNullMain.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.bytesmarshallable; 20 | 21 | // Class: BenchNullMain 22 | // A performance benchmarking class designed to test the efficiency 23 | // and performance of operations with null values. 24 | public class BenchNullMain { 25 | 26 | // Main method: entry point of the application, intended for 27 | // running the benchmarking test related to null operations. 28 | public static void main(String[] args) { 29 | // Instantiate a PerfRegressionHolder object. 30 | PerfRegressionHolder main = new PerfRegressionHolder(); 31 | 32 | // Perform the benchmark test specific to operations involving null values. 33 | main.doTest(main::benchNull); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/bytesmarshallable/BenchRefBytesMain.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.bytesmarshallable; 20 | 21 | // Class: BenchRefBytesMain 22 | // A class for performance benchmarking, particularly designed to 23 | // test the efficiency and performance of operations related to reference bytes. 24 | public class BenchRefBytesMain { 25 | 26 | // Main method: entry point of the application, designed for 27 | // running the benchmarking test related to reference bytes operations. 28 | public static void main(String[] args) { 29 | // Instantiate a PerfRegressionHolder object. 30 | PerfRegressionHolder main = new PerfRegressionHolder(); 31 | 32 | // Execute the benchmark test specific to reference byte operations. 33 | main.doTest(main::benchRefBytes); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/bytesmarshallable/BenchRefStringMain.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.bytesmarshallable; 20 | 21 | // Class: BenchRefStringMain 22 | // A performance benchmarking class designed to test the efficiency 23 | // and performance of operations related to reference strings. 24 | public class BenchRefStringMain { 25 | 26 | // Main method: entry point of the application, designed for 27 | // running the benchmarking test related to reference strings operations. 28 | public static void main(String[] args) { 29 | // Instantiate a PerfRegressionHolder object. 30 | PerfRegressionHolder main = new PerfRegressionHolder(); 31 | 32 | // Execute the benchmark test specific to reference string operations. 33 | main.doTest(main::benchRefString); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/bytesmarshallable/BenchStringMain.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.bytesmarshallable; 20 | 21 | // Class: BenchStringMain 22 | // A class for performance benchmarking, particularly designed to 23 | // test the efficiency and performance of string-related operations. 24 | public class BenchStringMain { 25 | 26 | // Main method: entry point of the application, designed for 27 | // running the benchmarking test related to string operations. 28 | public static void main(String[] args) { 29 | // Instantiate a PerfRegressionHolder object. 30 | PerfRegressionHolder main = new PerfRegressionHolder(); 31 | 32 | // Execute the benchmark test specific to string operations. 33 | main.doTest(main::benchString); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/bytesmarshallable/BenchUtf8StringMain.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.bytesmarshallable; 20 | 21 | // Class: BenchUtf8StringMain 22 | // A class for performance benchmarking, particularly designed to 23 | // test the efficiency and performance of UTF-8 string-related operations. 24 | public class BenchUtf8StringMain { 25 | 26 | // Main method: entry point of the application, designed for 27 | // running the benchmarking test related to UTF-8 string operations. 28 | public static void main(String[] args) { 29 | // Instantiate a PerfRegressionHolder object. 30 | PerfRegressionHolder main = new PerfRegressionHolder(); 31 | 32 | // Execute the benchmark test specific to UTF-8 string operations. 33 | main.doTest(main::benchUtf8String); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/examples/PersonOps.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire.examples; 2 | 3 | /** 4 | * This interface defines operations related to a person. 5 | */ 6 | public interface PersonOps { 7 | 8 | /** 9 | * Add a new person. 10 | * 11 | * @param p The person to be added. 12 | */ 13 | void addPerson(Person p); 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/examples/WireExamples3.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.examples; 20 | 21 | public class WireExamples3 { 22 | 23 | interface Printer { 24 | void print(String message); 25 | } 26 | 27 | public static void main(String[] args) { 28 | final Printer consolePrinter = System.out::println; 29 | consolePrinter.print("hello world"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/issue/Issue751Test.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire.issue; 2 | 3 | import net.openhft.chronicle.bytes.Bytes; 4 | import net.openhft.chronicle.wire.*; 5 | import org.jetbrains.annotations.NotNull; 6 | import org.junit.Test; 7 | 8 | public class Issue751Test extends WireTestCommon { 9 | 10 | public static class One extends SelfDescribingMarshallable { 11 | Comparable text; 12 | 13 | public One(Comparable text) { 14 | this.text = text; 15 | } 16 | } 17 | 18 | public static class Two implements Comparable, Marshallable { 19 | Comparable text; 20 | 21 | public Two(Comparable text) { 22 | this.text = text; 23 | } 24 | 25 | @Override 26 | public int compareTo(@NotNull Issue751Test.Two o) { 27 | return text.hashCode() - o.text.hashCode(); 28 | } 29 | } 30 | 31 | public static class Three extends SelfDescribingMarshallable { 32 | private One one; 33 | private Two two; 34 | 35 | public Three(One one, Two two) { 36 | this.one = one; 37 | this.two = two; 38 | } 39 | } 40 | 41 | @Test 42 | public void comparableField() { 43 | Wire wire = new YamlWire(Bytes.allocateElasticOnHeap()); 44 | wire.write("first").object(new Three( 45 | new One("hello"), new Two(42))); 46 | 47 | System.err.println(wire.read("first").object()); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/java17/Field.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.java17; 20 | 21 | import net.openhft.chronicle.wire.SelfDescribingMarshallable; 22 | 23 | import java.util.HashMap; 24 | import java.util.Map; 25 | 26 | /** 27 | * Represents a field with the ability to describe its structure and contents. 28 | * Inherits the capabilities of SelfDescribingMarshallable to provide 29 | * self-describing marshalling and unmarshalling. 30 | */ 31 | public class Field extends SelfDescribingMarshallable { 32 | 33 | // A map to maintain the required status for various field names 34 | private final Map required = new HashMap<>(); 35 | 36 | /** 37 | * Sets the required status for a given field name. 38 | * 39 | * @param name The name of the field. 40 | * @param required The required status of the field. 41 | */ 42 | public void required(String name, Required required) { 43 | this.required.put(name, required); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/java17/Group.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.java17; 20 | 21 | import net.openhft.chronicle.wire.SelfDescribingMarshallable; 22 | 23 | /** 24 | * Represents a group that contains a field and its related configurations. 25 | * Inherits the capabilities of SelfDescribingMarshallable to provide 26 | * self-describing marshalling and unmarshalling. 27 | */ 28 | public class Group extends SelfDescribingMarshallable { 29 | 30 | // The field associated with this group 31 | private final Field field; 32 | 33 | /** 34 | * Constructs a Group with the specified field. 35 | * 36 | * @param field The field to be associated with this group. 37 | */ 38 | public Group(Field field) { 39 | this.field = field; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/java17/Required.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.java17; 20 | 21 | public enum Required { 22 | NO 23 | } 24 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/marshallable/UnknownDatatimeTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016-2020 chronicle.software 3 | */ 4 | 5 | package net.openhft.chronicle.wire.marshallable; 6 | 7 | import net.openhft.chronicle.wire.Marshallable; 8 | import net.openhft.chronicle.wire.WireTestCommon; 9 | import org.junit.Test; 10 | 11 | import java.io.IOException; 12 | 13 | import static org.junit.Assert.assertEquals; 14 | 15 | // Import necessary libraries... 16 | 17 | /** 18 | * Test suite for ignoring unknown datetime during deserialization. 19 | */ 20 | public class UnknownDatatimeTest extends WireTestCommon { 21 | 22 | /** 23 | * Tests if an unknown datetime can be ignored during deserialization. 24 | */ 25 | @Test 26 | public void ignoreAnUnknownDateTime() throws IOException { 27 | // Deserialize an instance of AClass from a string. 28 | // The string contains a datetime field 'eventTime' which is not expected to exist in AClass. 29 | AClass aClass = Marshallable.fromString("!" + AClass.class.getName() + " { eventTime: 2019-04-02T11:20:41.616653, id: 123456 }"); 30 | 31 | // Assert that the 'id' field of the deserialized object has the expected value. 32 | // The absence of 'eventTime' in AClass should not cause any issues during deserialization. 33 | assertEquals(123456, aClass.id); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/method/ChronicleEventHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.method; 20 | 21 | /** 22 | * Defines a specialized handler for dealing with ChronicleEvent instances. 23 | * This interface extends the generic EventHandler to specifically handle 24 | * ChronicleEvent objects. 25 | */ 26 | public interface ChronicleEventHandler extends EventHandler { 27 | 28 | /** 29 | * Handles the provided ChronicleEvent. 30 | * @param event The ChronicleEvent instance to be handled. 31 | */ 32 | @Override 33 | void event(ChronicleEvent event); 34 | } 35 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/method/ClusterCommandListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.method; 20 | 21 | /** 22 | * An interface defining a listener for cluster commands. 23 | * Implementations of this interface can process commands intended for cluster operations. 24 | */ 25 | public interface ClusterCommandListener { 26 | 27 | /** 28 | * Invoked when a cluster command needs to be processed. 29 | * 30 | * @param clusterCommand The cluster command to be processed. 31 | */ 32 | void command(ClusterCommand clusterCommand); 33 | } 34 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/method/EventHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.method; 20 | 21 | /** 22 | * Interface for handling events of type T where T is a subtype of Event. 23 | * Implementors of this interface should provide concrete behavior for what to do with the event. 24 | * 25 | * @param The type of event this handler is responsible for, bounded by the Event interface. 26 | */ 27 | public interface EventHandler { 28 | 29 | /** 30 | * Handles the event. This method is meant to define how an event should be processed. 31 | * 32 | * @param event The event to handle. 33 | */ 34 | void event(T event); 35 | 36 | /** 37 | * Responds to an event. This method is typically invoked when an event occurs. 38 | * 39 | * @param event The event that has occurred. 40 | */ 41 | void onEvent(T event); 42 | } 43 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/method/FundingOut.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.method; 20 | 21 | /** 22 | * Interface that combines the functionalities of both FundingListener and ClusterCommandListener. 23 | * It represents an entity capable of handling both funding-related events and cluster command events. 24 | * This design allows a single implementation to listen to and process a variety of different event types. 25 | */ 26 | public interface FundingOut extends 27 | FundingListener, ClusterCommandListener { 28 | // This interface currently does not declare any additional methods, but it inherits all methods 29 | // from both FundingListener and ClusterCommandListener. 30 | } 31 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/method/MockDto.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire.method; 2 | 3 | import net.openhft.chronicle.wire.Comment; 4 | import net.openhft.chronicle.wire.SelfDescribingMarshallable; 5 | 6 | class MockDto extends SelfDescribingMarshallable { 7 | @Comment("field1 comment") 8 | String field1; 9 | @Comment("field2 comment") 10 | double field2; 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/method/MockMethods.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.method; 20 | 21 | import net.openhft.chronicle.wire.IMid; 22 | 23 | import java.util.List; 24 | 25 | /** 26 | * Interface defining a set of mock methods for testing purposes. 27 | * It includes methods with various argument types and one that returns another interface. 28 | */ 29 | interface MockMethods { 30 | // Method with a single MockDto argument 31 | void method1(MockDto dto); 32 | 33 | // Another method with a single MockDto argument 34 | void method2(MockDto dto); 35 | 36 | // Method with a list of MockDto objects as an argument 37 | void method3(List dtos); 38 | 39 | // Method with a list of strings as an argument 40 | void list(List strings); 41 | 42 | // Method designed to throw an exception 43 | void throwException(String s); 44 | 45 | // Method that returns an instance of the IMid interface 46 | IMid mid(String text); 47 | } 48 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/method/Service.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2022 chronicle.software 3 | * 4 | * https://chronicle.software 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | package net.openhft.chronicle.wire.method; 20 | 21 | /** 22 | * Enum representing different service types. 23 | * Each enum constant represents a distinct service. 24 | */ 25 | public enum Service { 26 | 27 | // Enum constants representing different services 28 | S1, // Represents service type S1 29 | S2; // Represents service type S2 30 | 31 | /** 32 | * Returns the service ID as a string. 33 | * This method converts the enum constant to a string representation. 34 | * 35 | * @return The string representation of the enum constant, effectively the service ID. 36 | */ 37 | String serviceId() { 38 | return toString(); // Returns the string representation of the enum constant 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/recursive/Base.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire.recursive; 2 | 3 | import net.openhft.chronicle.wire.AbstractEventCfg; 4 | 5 | public class Base extends AbstractEventCfg { 6 | private final String name; 7 | 8 | public Base(String name) { 9 | this.name = name; 10 | } 11 | 12 | public String name() { 13 | return name; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/recursive/RecursiveTest.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire.recursive; 2 | 3 | import net.openhft.chronicle.wire.WireMarshaller; 4 | import org.junit.Test; 5 | 6 | import static org.junit.jupiter.api.Assertions.assertEquals; 7 | import static org.junit.jupiter.api.Assertions.assertNotNull; 8 | 9 | /** 10 | * Test for recursion in the marshaller and fields. WIRE_MARSHALLER_CL.get should not recurse while 11 | * looking up fields of the class. At time of writing this occurs when checking if the component class 12 | * of a subfield is a leaf and is only a problem when the component class is the same as the parent class. 13 | */ 14 | public class RecursiveTest { 15 | 16 | @Test 17 | public void referToBaseClass() { 18 | test(new ReferToBaseClass("hello"), new ReferToBaseClass(null)); 19 | } 20 | 21 | @Test 22 | public void referToSameClass() { 23 | test(new ReferToSameClass("test"), new ReferToSameClass(null)); 24 | } 25 | 26 | @Test 27 | public void marshallerReferToSameClass() { 28 | WireMarshaller marshaller= WireMarshaller.WIRE_MARSHALLER_CL.get(ReferToSameClass.class); 29 | assertNotNull(marshaller); 30 | } 31 | 32 | @Test 33 | public void marshallerReferToBaseClass() { 34 | WireMarshaller marshaller = WireMarshaller.WIRE_MARSHALLER_CL.get(ReferToBaseClass.class); 35 | assertNotNull(marshaller); 36 | } 37 | 38 | private void test(Base from, Base to) { 39 | from.copyTo(to); 40 | assertEquals(from.name(), to.name()); 41 | } 42 | } -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/recursive/ReferToBaseClass.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire.recursive; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class ReferToBaseClass extends ReferToSameClass { 7 | private final List list = new ArrayList<>(); 8 | 9 | public ReferToBaseClass(String name) { 10 | super(name); 11 | } 12 | 13 | public List list() { 14 | return list; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/recursive/ReferToSameClass.java: -------------------------------------------------------------------------------- 1 | package net.openhft.chronicle.wire.recursive; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class ReferToSameClass extends Base { 7 | private final List list = new ArrayList<>(); 8 | 9 | public ReferToSameClass(String name) { 10 | super(name); 11 | } 12 | 13 | public List list() { 14 | return list; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/net/openhft/chronicle/wire/security/exploit.yaml: -------------------------------------------------------------------------------- 1 | is: !javax.crypto.CipherInputStream { 2 | cipher: !javax.crypto.NullCipher { 3 | initialized: false, 4 | opmode: 0, 5 | serviceIterator: !javax.imageio.spi.FilterIterator { 6 | iter: !javax.imageio.spi.FilterIterator { 7 | iter: !java.util.Collections$EmptyIterator { }, 8 | next: !java.lang.ProcessBuilder { 9 | command: [ 10 | /bin/sh, 11 | "-c", 12 | echo hello world 13 | ], 14 | directory: !!null "", 15 | environment: !!null "", 16 | redirectErrorStream: false, 17 | redirects: !!null "" 18 | } 19 | }, 20 | filter: !javax.imageio.ImageIO$ContainsFilter { 21 | method: { 22 | clazz: java.lang.ProcessBuilder, 23 | name: start, 24 | parameterTypes: [ ] 25 | } 26 | }, 27 | next: foo 28 | }, 29 | input: !java.lang.ProcessBuilder$NullInputStream { }, 30 | done: false, 31 | ostart: 0, 32 | ofinish: 0, 33 | closed: false 34 | } 35 | -------------------------------------------------------------------------------- /src/test/resources/CSVWireTest.csv: -------------------------------------------------------------------------------- 1 | Symbol,Name,Price,Change,ChangePercent,Day's Volume 2 | III,3i Group,479.4,12,2.44,2387043 3 | 3IN,3i Infrastructure,164.7,0.1,0.06,429433 4 | AA,AA,325.9,5.7,1.72,1469834 5 | -------------------------------------------------------------------------------- /src/test/resources/compat/escaped.yaml: -------------------------------------------------------------------------------- 1 | b: "\bb\b" 2 | t: "\tt\t" 3 | n: "\nn\n" 4 | -------------------------------------------------------------------------------- /src/test/resources/compat/quoted-comment.yaml: -------------------------------------------------------------------------------- 1 | quoted: ' # not a ''comment''.' 2 | -------------------------------------------------------------------------------- /src/test/resources/docs/qe_cfg.yaml: -------------------------------------------------------------------------------- 1 | !ChronicleQueueReplicationCfg { 2 | context: !QueueClusterContext { 3 | heartbeatIntervalMs: 60000, 4 | heartbeatTimeoutMs: 120000, 5 | }, 6 | hosts: { 7 | server: { connectUri: localhost:7072 }, 8 | client: { connectUri: localhost:7073 } 9 | }, 10 | queues: { 11 | trades: { 12 | path: trades, 13 | master: server, 14 | acknowledge: true 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/test/resources/echoing.yaml: -------------------------------------------------------------------------------- 1 | port: 65432 2 | microservice: !net.openhft.chronicle.queue.channel.EchoingMicroservice { } 3 | buffered: ${buffered} 4 | -------------------------------------------------------------------------------- /src/test/resources/empty-file.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenHFT/Chronicle-Wire/c8ca01bb62e9b6e46318624a6a4a96b4d5b21d38/src/test/resources/empty-file.yaml -------------------------------------------------------------------------------- /src/test/resources/exception.yaml: -------------------------------------------------------------------------------- 1 | --- !!data 2 | exception: !java.security.InvalidAlgorithmParameterException { 3 | message: Reference cannot be null, 4 | stackTrace: [ 5 | { class: net.openhft.chronicle.wire.YamlWireTest, method: testException, file: YamlWireTest.java, line: 783 }, 6 | { class: net.openhft.chronicle.wire.YamlWireTest, method: runTestException, file: YamlWireTest.java, line: 73 }, 7 | { class: sun.reflect.NativeMethodAccessorImpl, method: invoke0, file: NativeMethodAccessorImpl.java, line: -2 } 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/itop.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "http://json-schema.org/draft-07/schema#", 4 | "title": "Core schema meta-schema", 5 | "definitions": { 6 | "DMOuterClass": { 7 | "type": "object", 8 | "required": [ 9 | "b", 10 | "bb", 11 | "s", 12 | "f", 13 | "d", 14 | "l", 15 | "i" 16 | ], 17 | "properties": { 18 | "text": { 19 | "type": "string" 20 | }, 21 | "b": { 22 | "type": "boolean" 23 | }, 24 | "bb": { 25 | "type": "integer" 26 | }, 27 | "s": { 28 | "type": "integer" 29 | }, 30 | "f": { 31 | "type": "number" 32 | }, 33 | "d": { 34 | "type": "number" 35 | }, 36 | "l": { 37 | "type": "integer" 38 | }, 39 | "i": { 40 | "type": "integer" 41 | }, 42 | "nested": { 43 | "type": "array" 44 | }, 45 | "map": { 46 | "type": "object" 47 | } 48 | } 49 | } 50 | }, 51 | "properties": { 52 | "echo": { 53 | "type": "string" 54 | }, 55 | "next2": { 56 | "type": "string" 57 | }, 58 | "dto": { 59 | "$ref": "#/definitions/DMOuterClass" 60 | }, 61 | "mid2": { 62 | "type": "string" 63 | }, 64 | "next": { 65 | "type": "integer" 66 | }, 67 | "mid": { 68 | "type": "string" 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/test/resources/md.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | !MDU { 3 | symbol: EU 4 | }, 5 | !MDU { 6 | symbol: UY 7 | }, 8 | !MDU { 9 | symbol: AU 10 | } 11 | ] 12 | -------------------------------------------------------------------------------- /src/test/resources/md2.yaml: -------------------------------------------------------------------------------- 1 | !MDU { 2 | symbol: EU 3 | } 4 | --- 5 | !MDU { 6 | symbol: UY 7 | } 8 | --- 9 | !MDU { 10 | symbol: AU 11 | } 12 | --- 13 | -------------------------------------------------------------------------------- /src/test/resources/methods-collections-in.yaml: -------------------------------------------------------------------------------- 1 | method3: [ 2 | { 3 | field1: hello, 4 | field2: 1.23 5 | }, 6 | { 7 | field1: world, 8 | field2: 1e6 9 | } 10 | ] 11 | ... 12 | method3: [ 13 | { 14 | field1: gidday, 15 | field2: 1 16 | }, 17 | { 18 | field1: mate, 19 | field2: 2 20 | } 21 | ] 22 | --- 23 | -------------------------------------------------------------------------------- /src/test/resources/methods/in.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | method1: { 4 | field1: hello, # field1 comment 5 | field2: 1.23, # field2 comment 6 | } 7 | ... 8 | --- 9 | method2: { 10 | field1: world, # field1 comment 11 | field2: 1E6, # field2 comment 12 | } 13 | ... 14 | ... 15 | --- 16 | ... 17 | list: [ 18 | hello, 19 | world 20 | ] 21 | ... 22 | -------------------------------------------------------------------------------- /src/test/resources/methods/out.yaml: -------------------------------------------------------------------------------- 1 | method1: { 2 | field1: hello, # field1 comment 3 | field2: 1.23, # field2 comment 4 | } 5 | ... 6 | method2: { 7 | field1: world, # field1 comment 8 | field2: 1E6, # field2 comment 9 | } 10 | ... 11 | list: [ 12 | hello, 13 | world 14 | ] 15 | ... 16 | -------------------------------------------------------------------------------- /src/test/resources/mixed-quotes.yaml: -------------------------------------------------------------------------------- 1 | [ "\"", '"', '\', '"', "\"'", "\"", "\"\"", "\'\'" ] 2 | -------------------------------------------------------------------------------- /src/test/resources/morse-code.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | A: .- 3 | B: -... 4 | C: -.-. 5 | D: -.. 6 | E: . 7 | F: ..-. 8 | G: --. 9 | H: .... 10 | I: .. 11 | J: .--- 12 | K: -.- 13 | L: .-.. 14 | M: -- 15 | N: -. 16 | O: --- 17 | P: .--. 18 | Q: --.- 19 | R: .-. 20 | S: ... 21 | T: "-" 22 | U: ..- 23 | V: ...- 24 | W: .-- 25 | X: -..- 26 | Y: -.-- 27 | Z: --.. 28 | ... 29 | -------------------------------------------------------------------------------- /src/test/resources/my-pojos.yaml: -------------------------------------------------------------------------------- 1 | !MyPojos { 2 | name: test-list, 3 | myPojos: [ 4 | { text: text1, num: 1, factor: 1.1 }, 5 | { text: text2, num: 2, factor: 2.2 } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /src/test/resources/naked.yaml: -------------------------------------------------------------------------------- 1 | HeartBtInt: 20 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/README.adoc: -------------------------------------------------------------------------------- 1 | Copied from https://github.com/nst/JSONTestSuite 2 | 3 | MIT License 4 | 5 | Copyright (c) 2016 Nicolas Seriot 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-0.yaml: -------------------------------------------------------------------------------- 1 | "" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-1.yaml: -------------------------------------------------------------------------------- 1 | "" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-10.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | 1, 3 | 2 4 | ] 5 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-101.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | hello, 3 | "bye\n\r\t\v" 4 | ] 5 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-12.yaml: -------------------------------------------------------------------------------- 1 | "1": 2 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-125.yaml: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-13.yaml: -------------------------------------------------------------------------------- 1 | "1": 2 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-136.yaml: -------------------------------------------------------------------------------- 1 | 3.0 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-137.yaml: -------------------------------------------------------------------------------- 1 | .3 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-139.yaml: -------------------------------------------------------------------------------- 1 | "0.3e" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-140.yaml: -------------------------------------------------------------------------------- 1 | "0.3e+" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-145.yaml: -------------------------------------------------------------------------------- 1 | 3 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-147.yaml: -------------------------------------------------------------------------------- 1 | -3.0 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-149.yaml: -------------------------------------------------------------------------------- 1 | .5 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-15.yaml: -------------------------------------------------------------------------------- 1 | "1": 2 2 | "2.5": [ 3 | 3, 4 | 4, 5 | { 6 | }, 7 | { 8 | "5": [ 9 | "6" 10 | ], 11 | ? [ 7]: "" 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-150.yaml: -------------------------------------------------------------------------------- 1 | 5.0 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-151.yaml: -------------------------------------------------------------------------------- 1 | 50.0 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-153.yaml: -------------------------------------------------------------------------------- 1 | .3e1 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-154.yaml: -------------------------------------------------------------------------------- 1 | .3e+1 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-155.yaml: -------------------------------------------------------------------------------- 1 | .3e-1 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-156.yaml: -------------------------------------------------------------------------------- 1 | .3e-1 .5 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-157.yaml: -------------------------------------------------------------------------------- 1 | .3e-1.5 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-158.yaml: -------------------------------------------------------------------------------- 1 | .3e+1.5 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-159.yaml: -------------------------------------------------------------------------------- 1 | .3e+. 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-160.yaml: -------------------------------------------------------------------------------- 1 | .3e+.5 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-161.yaml: -------------------------------------------------------------------------------- 1 | .3e+1.5 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-162.yaml: -------------------------------------------------------------------------------- 1 | "9.3e+1.5" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-163.yaml: -------------------------------------------------------------------------------- 1 | "9.e+1.5" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-164.yaml: -------------------------------------------------------------------------------- 1 | "9.e+" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-165.yaml: -------------------------------------------------------------------------------- 1 | 90.0 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-169.yaml: -------------------------------------------------------------------------------- 1 | '".' 2 | . 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-171.yaml: -------------------------------------------------------------------------------- 1 | '""""' 2 | "" 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-172.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | '""""', 3 | ., 4 | 5 5 | ] 6 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-173.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | .5 3 | ] 4 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-175.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | '""""', 3 | ., 4 | 5 5 | ] 6 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-176.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | '""""', 3 | ., 4 | 5 5 | ] 6 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-177.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | '"', 3 | ., 4 | 5 5 | ] 6 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-178.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | '".5', 3 | ., 4 | 5 5 | ] 6 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-179.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | '".5', 3 | '.5"', 4 | ., 5 | 5 6 | ] 7 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-180.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | '".5', 3 | '.5"', 4 | ., 5 | 5 6 | ] 7 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-181.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | '".5', 3 | '.5"', 4 | ., 5 | 5 6 | ] 7 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-183.yaml: -------------------------------------------------------------------------------- 1 | key: /*comment*/ 2 | value: "" 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-184.yaml: -------------------------------------------------------------------------------- 1 | key: /*comment 2 | value: "" 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-185.yaml: -------------------------------------------------------------------------------- 1 | key: value 2 | /* 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-186.yaml: -------------------------------------------------------------------------------- 1 | key: value 2 | /**/ 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-187.yaml: -------------------------------------------------------------------------------- 1 | key: value 2 | /***/ 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-188.yaml: -------------------------------------------------------------------------------- 1 | key: value 2 | /**// 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-189.yaml: -------------------------------------------------------------------------------- 1 | key: value 2 | /**/// 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-190.yaml: -------------------------------------------------------------------------------- 1 | key: value 2 | /**///---- 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-191.yaml: -------------------------------------------------------------------------------- 1 | key: value 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-192.yaml: -------------------------------------------------------------------------------- 1 | key: value 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-194.yaml: -------------------------------------------------------------------------------- 1 | key: value 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-195.yaml: -------------------------------------------------------------------------------- 1 | key: value 2 | /**/: { 3 | k2: v2 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-197.yaml: -------------------------------------------------------------------------------- 1 | hello' 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-198.yaml: -------------------------------------------------------------------------------- 1 | hello' 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-199.yaml: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-2.yaml: -------------------------------------------------------------------------------- 1 | "" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-20.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | 2 3 | ] 4 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-200.yaml: -------------------------------------------------------------------------------- 1 | hell'o 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-201.yaml: -------------------------------------------------------------------------------- 1 | "'hello" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-202.yaml: -------------------------------------------------------------------------------- 1 | "'hello'" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-203.yaml: -------------------------------------------------------------------------------- 1 | "\\'hello\\'" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-204.yaml: -------------------------------------------------------------------------------- 1 | hello' 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-205.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | "hello']" 3 | ] 4 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-206.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | hello' 3 | ] 4 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-207.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | 'hello"' 3 | ] 4 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-208.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | 'hello"' 3 | ] 4 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-209.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | 'hello"o' 3 | ] 4 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-21.yaml: -------------------------------------------------------------------------------- 1 | "3" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-210.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | '"' 3 | ] 4 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-211.yaml: -------------------------------------------------------------------------------- 1 | '"' 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-212.yaml: -------------------------------------------------------------------------------- 1 | '"hello"' 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-213.yaml: -------------------------------------------------------------------------------- 1 | '"hello' 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-214.yaml: -------------------------------------------------------------------------------- 1 | '"hi"' 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-216.yaml: -------------------------------------------------------------------------------- 1 | nil 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-217.yaml: -------------------------------------------------------------------------------- 1 | fals 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-218.yaml: -------------------------------------------------------------------------------- 1 | falsify 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-219.yaml: -------------------------------------------------------------------------------- 1 | falsetto 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-22.yaml: -------------------------------------------------------------------------------- 1 | "3" 2 | "4" 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-220.yaml: -------------------------------------------------------------------------------- 1 | truism 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-223.yaml: -------------------------------------------------------------------------------- 1 | "\0" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-24.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4 5 | ] 6 | ] 7 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-25.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ], 8 | 6 9 | ], 10 | 7, 11 | 8, 12 | 9 13 | ] 14 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-26.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ], 8 | 6 9 | ], 10 | 7, 11 | 8, 12 | 9 13 | ] 14 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-27.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ], 8 | 6 9 | ], 10 | 7, 11 | 8, 12 | 9 13 | ] 14 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-28.yaml: -------------------------------------------------------------------------------- 1 | hello: true 2 | bye: false 3 | null: "" 4 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-29.yaml: -------------------------------------------------------------------------------- 1 | hello: true 2 | bye: false 3 | null: !!null "" 4 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-30.yaml: -------------------------------------------------------------------------------- 1 | hi 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-31.yaml: -------------------------------------------------------------------------------- 1 | hi 2 | "" 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-33.yaml: -------------------------------------------------------------------------------- 1 | "\uD800\uD800" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-34.yaml: -------------------------------------------------------------------------------- 1 | "\uD800\uDBFF" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-35.yaml: -------------------------------------------------------------------------------- 1 | UD834UDD1E 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-36.yaml: -------------------------------------------------------------------------------- 1 | "\uDB00" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-37.yaml: -------------------------------------------------------------------------------- 1 | "\uDB00\uDBFF" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-40.yaml: -------------------------------------------------------------------------------- 1 | . 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-44.yaml: -------------------------------------------------------------------------------- 1 | "+." 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-46.yaml: -------------------------------------------------------------------------------- 1 | 0.0 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-54.yaml: -------------------------------------------------------------------------------- 1 | 1234 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-55.yaml: -------------------------------------------------------------------------------- 1 | "++1234" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-59.yaml: -------------------------------------------------------------------------------- 1 | 1.23E-140 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-63.yaml: -------------------------------------------------------------------------------- 1 | .246e-142 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-64.yaml: -------------------------------------------------------------------------------- 1 | .2e-142 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-66.yaml: -------------------------------------------------------------------------------- 1 | .3 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-69.yaml: -------------------------------------------------------------------------------- 1 | 3.0 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-7.yaml: -------------------------------------------------------------------------------- 1 | "": "" 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-77.yaml: -------------------------------------------------------------------------------- 1 | 3.5 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-78.yaml: -------------------------------------------------------------------------------- 1 | .3e 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-79.yaml: -------------------------------------------------------------------------------- 1 | .3e1 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-80.yaml: -------------------------------------------------------------------------------- 1 | .3e-1 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-81.yaml: -------------------------------------------------------------------------------- 1 | .3e+1 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-82.yaml: -------------------------------------------------------------------------------- 1 | 30.0 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-83.yaml: -------------------------------------------------------------------------------- 1 | 30.0 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-85.yaml: -------------------------------------------------------------------------------- 1 | .5 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-86.yaml: -------------------------------------------------------------------------------- 1 | 0.5 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-87.yaml: -------------------------------------------------------------------------------- 1 | .5e+1 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/e-91.yaml: -------------------------------------------------------------------------------- 1 | .e-14234 2 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_0.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenHFT/Chronicle-Wire/c8ca01bb62e9b6e46318624a6a4a96b4d5b21d38/src/test/resources/nst_files/n_0.json -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_1.json: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_10.json: -------------------------------------------------------------------------------- 1 | [ 2 | 1, 3 | 2, 4 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_101.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hello", 3 | "bye\n\r\t\v" 4 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_11.json: -------------------------------------------------------------------------------- 1 | [ 2 | 1 3 | : 4 | 2 5 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_12.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": 2, 3 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_125.json: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_127.json: -------------------------------------------------------------------------------- 1 | [ 2 | 32, -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_13.json: -------------------------------------------------------------------------------- 1 | { 2 | 1: 2 3 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_136.json: -------------------------------------------------------------------------------- 1 | 3. -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_137.json: -------------------------------------------------------------------------------- 1 | .3 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_139.json: -------------------------------------------------------------------------------- 1 | 0.3e -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_14.json: -------------------------------------------------------------------------------- 1 | "1": 2 2 | "2.5": [ 3 | 3, 4 | 4{ 5 | }{ 6 | "5": [ 7 | "6" 8 | ] 9 | "[7 ": "" 10 | } 11 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_140.json: -------------------------------------------------------------------------------- 1 | 0.3e+ -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_145.json: -------------------------------------------------------------------------------- 1 | +3 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_147.json: -------------------------------------------------------------------------------- 1 | -3. -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_149.json: -------------------------------------------------------------------------------- 1 | .5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_15.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": 2, 3 | "2.5": [ 4 | 3, 5 | 4, 6 | {}, 7 | { 8 | "5": [ 9 | "6" 10 | ], 11 | [ 12 | 7 13 | ] 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_150.json: -------------------------------------------------------------------------------- 1 | 5. -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_151.json: -------------------------------------------------------------------------------- 1 | 5.e1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_153.json: -------------------------------------------------------------------------------- 1 | .3e1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_154.json: -------------------------------------------------------------------------------- 1 | .3e+1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_155.json: -------------------------------------------------------------------------------- 1 | .3e-1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_156.json: -------------------------------------------------------------------------------- 1 | .3e-1 .5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_157.json: -------------------------------------------------------------------------------- 1 | .3e-1.5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_158.json: -------------------------------------------------------------------------------- 1 | .3e+1.5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_159.json: -------------------------------------------------------------------------------- 1 | .3e+. -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_16.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": 2, 3 | "2.5": [ 4 | 3, 5 | 4, 6 | {}, 7 | { 8 | "5": [ 9 | "6" 10 | ], 11 | "7": [ 12 | 8 13 | ] 14 | } 15 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_160.json: -------------------------------------------------------------------------------- 1 | .3e+.5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_161.json: -------------------------------------------------------------------------------- 1 | .3e+1.5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_162.json: -------------------------------------------------------------------------------- 1 | 9.3e+1.5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_163.json: -------------------------------------------------------------------------------- 1 | 9.e+1.5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_164.json: -------------------------------------------------------------------------------- 1 | 9.e+ -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_165.json: -------------------------------------------------------------------------------- 1 | 9.e+1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_169.json: -------------------------------------------------------------------------------- 1 | "\".". -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_17.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": 2, 3 | "2.5": [ 4 | 3, 5 | 4, 6 | {}, 7 | { 8 | "5": [ 9 | "6" 10 | ], 11 | "7": [ 12 | 8 13 | ] 14 | } 15 | ] 16 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_171.json: -------------------------------------------------------------------------------- 1 | "\"\"\"\""" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_172.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\"\"\"\"", 3 | . 4 | 5 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_173.json: -------------------------------------------------------------------------------- 1 | [ 2 | .5] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_175.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\"\"\"\"", 3 | . 4 | 5 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_176.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\"\"\"\"", 3 | . 4 | 5 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_177.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\"", 3 | . 4 | 5 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_178.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\".5", 3 | . 4 | 5 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_179.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\".5", 3 | ".5\"" 4 | . 5 | 5 6 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_18.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": 2, 3 | "3": 4 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_180.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\".5", 3 | ".5\"", 4 | . 5 | 5 6 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_181.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\".5", 3 | ".5\"", 4 | . 5 | 5 6 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_183.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": /*comment*/"value" 3 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_184.json: -------------------------------------------------------------------------------- 1 | { 2 | "key":/*comment"value"} -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_185.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | }/* -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_186.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | }/**/ -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_187.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | }/***/ -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_188.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | }/**// -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_189.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | }/**/// -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_19.json: -------------------------------------------------------------------------------- 1 | "1\u2" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_190.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | }/**///---- -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_191.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | }# -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_192.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | }#{ -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_193.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | }#{ 4 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_194.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | }#, -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_195.json: -------------------------------------------------------------------------------- 1 | { 2 | "key": "value" 3 | /**/, 4 | "k2": "v2" 5 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_197.json: -------------------------------------------------------------------------------- 1 | "hello\'" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_198.json: -------------------------------------------------------------------------------- 1 | 'hello\'' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_199.json: -------------------------------------------------------------------------------- 1 | 'hello' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_2.json: -------------------------------------------------------------------------------- 1 | " -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_20.json: -------------------------------------------------------------------------------- 1 | [ 2 | ,2] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_200.json: -------------------------------------------------------------------------------- 1 | 'hell\'o' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_201.json: -------------------------------------------------------------------------------- 1 | '\'hello' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_202.json: -------------------------------------------------------------------------------- 1 | '\'hello\'' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_203.json: -------------------------------------------------------------------------------- 1 | \'hello\' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_204.json: -------------------------------------------------------------------------------- 1 | 'hello\' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_205.json: -------------------------------------------------------------------------------- 1 | [ 2 | 'hello\'] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_206.json: -------------------------------------------------------------------------------- 1 | [ 2 | 'hello\'' 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_207.json: -------------------------------------------------------------------------------- 1 | [ 2 | 'hello"' 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_208.json: -------------------------------------------------------------------------------- 1 | [ 2 | 'hello\"' 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_209.json: -------------------------------------------------------------------------------- 1 | [ 2 | 'hello"o' 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_21.json: -------------------------------------------------------------------------------- 1 | "3 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_210.json: -------------------------------------------------------------------------------- 1 | [ 2 | '"' 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_211.json: -------------------------------------------------------------------------------- 1 | '"' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_212.json: -------------------------------------------------------------------------------- 1 | '"hello"' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_213.json: -------------------------------------------------------------------------------- 1 | '"hello' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_214.json: -------------------------------------------------------------------------------- 1 | '"hi"' -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_216.json: -------------------------------------------------------------------------------- 1 | nil -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_217.json: -------------------------------------------------------------------------------- 1 | fals -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_218.json: -------------------------------------------------------------------------------- 1 | falsify -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_219.json: -------------------------------------------------------------------------------- 1 | falsetto -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_22.json: -------------------------------------------------------------------------------- 1 | "3" "4" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_220.json: -------------------------------------------------------------------------------- 1 | truism -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_221.json: -------------------------------------------------------------------------------- 1 | { 2 | "key" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_222.json: -------------------------------------------------------------------------------- 1 | { 2 | "key", 3 | "key2": value 4 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_223.json: -------------------------------------------------------------------------------- 1 | "\u0000" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_23.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 3 | [ 4 | 4 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_24.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 3 | [ 4 | 4 5 | ] 6 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_25.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ], 8 | 6 9 | ] 10 | 7, 11 | 8 12 | 9 13 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_26.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ], 8 | 6 9 | ] 10 | 7, 11 | 8, 12 | 9 13 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_27.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ], 8 | 6 9 | ], 10 | 7, 11 | 8 12 | 9 13 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_28.json: -------------------------------------------------------------------------------- 1 | { 2 | "hello": true, 3 | "bye": false, 4 | null 5 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_29.json: -------------------------------------------------------------------------------- 1 | { 2 | "hello": true, 3 | "bye": false, 4 | null: null 5 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_3.json: -------------------------------------------------------------------------------- 1 | [ 2 | , 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_30.json: -------------------------------------------------------------------------------- 1 | "hi -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_31.json: -------------------------------------------------------------------------------- 1 | "hi""" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_32.json: -------------------------------------------------------------------------------- 1 | { 2 | "hi": "bye" 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_33.json: -------------------------------------------------------------------------------- 1 | "\uD800\uD800" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_34.json: -------------------------------------------------------------------------------- 1 | "\uD800\uDBFF" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_35.json: -------------------------------------------------------------------------------- 1 | "\UD834\UDD1E" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_36.json: -------------------------------------------------------------------------------- 1 | "\uDB00" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_37.json: -------------------------------------------------------------------------------- 1 | "\uDB00\uDBFF" -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_4.json: -------------------------------------------------------------------------------- 1 | [ 2 | ) -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_40.json: -------------------------------------------------------------------------------- 1 | . -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_44.json: -------------------------------------------------------------------------------- 1 | +. -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_46.json: -------------------------------------------------------------------------------- 1 | 0.e1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_5.json: -------------------------------------------------------------------------------- 1 | []] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_54.json: -------------------------------------------------------------------------------- 1 | +1234 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_55.json: -------------------------------------------------------------------------------- 1 | ++1234 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_59.json: -------------------------------------------------------------------------------- 1 | 123.e-142 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_6.json: -------------------------------------------------------------------------------- 1 | [ 2 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_63.json: -------------------------------------------------------------------------------- 1 | .246e-142 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_64.json: -------------------------------------------------------------------------------- 1 | .2e-142 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_66.json: -------------------------------------------------------------------------------- 1 | .3 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_69.json: -------------------------------------------------------------------------------- 1 | +3. -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_7.json: -------------------------------------------------------------------------------- 1 | { 2 | , 3 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_77.json: -------------------------------------------------------------------------------- 1 | +3.5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_78.json: -------------------------------------------------------------------------------- 1 | .3e -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_79.json: -------------------------------------------------------------------------------- 1 | .3e1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_8.json: -------------------------------------------------------------------------------- 1 | { 2 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_80.json: -------------------------------------------------------------------------------- 1 | .3e-1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_81.json: -------------------------------------------------------------------------------- 1 | .3e+1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_82.json: -------------------------------------------------------------------------------- 1 | 3.e1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_83.json: -------------------------------------------------------------------------------- 1 | 3.e+1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_85.json: -------------------------------------------------------------------------------- 1 | .5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_86.json: -------------------------------------------------------------------------------- 1 | +.5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_87.json: -------------------------------------------------------------------------------- 1 | .5e+1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_9.json: -------------------------------------------------------------------------------- 1 | [ 2 | "1" 3 | : 4 | 2 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/n_91.json: -------------------------------------------------------------------------------- 1 | .e-14234 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_100.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hello", 3 | "bye\n\r\t\b", 4 | true, 5 | false, 6 | null 7 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_102.json: -------------------------------------------------------------------------------- 1 | { 2 | "hello": true 3 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_103.json: -------------------------------------------------------------------------------- 1 | { 2 | "hello": true, 3 | "bye": false 4 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_104.json: -------------------------------------------------------------------------------- 1 | { 2 | "hello": true, 3 | "bye": false, 4 | "foo": [ 5 | "one", 6 | "two", 7 | "three" 8 | ] 9 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_105.json: -------------------------------------------------------------------------------- 1 | "hi" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_106.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hi" 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_107.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hi", 3 | "bye" 4 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_108.json: -------------------------------------------------------------------------------- 1 | { 2 | "hi": "bye" 3 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_109.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hi", 3 | "bye", 4 | 3 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_110.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hi", 3 | "bye[", 4 | 3 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_111.json: -------------------------------------------------------------------------------- 1 | "\u0007" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_112.json: -------------------------------------------------------------------------------- 1 | "\u0008" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_113.json: -------------------------------------------------------------------------------- 1 | "\u0009" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_114.json: -------------------------------------------------------------------------------- 1 | "\u0010" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_115.json: -------------------------------------------------------------------------------- 1 | "\u0020" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_116.json: -------------------------------------------------------------------------------- 1 | "\u10000" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_117.json: -------------------------------------------------------------------------------- 1 | "\u1234" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_118.json: -------------------------------------------------------------------------------- 1 | "\u99999" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_119.json: -------------------------------------------------------------------------------- 1 | "\ud800\udc00" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_120.json: -------------------------------------------------------------------------------- 1 | "\uD800\uDC00" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_121.json: -------------------------------------------------------------------------------- 1 | "\uD834\uDD1E" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_122.json: -------------------------------------------------------------------------------- 1 | "\uDBFF\uDFFF" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_123.json: -------------------------------------------------------------------------------- 1 | "\uFFFD" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_124.json: -------------------------------------------------------------------------------- 1 | "\uFFFF" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_126.json: -------------------------------------------------------------------------------- 1 | [ 2 | 32, 3 | 1 4 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_128.json: -------------------------------------------------------------------------------- 1 | "\uD800\uDC00" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_129.json: -------------------------------------------------------------------------------- 1 | "\n" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_130.json: -------------------------------------------------------------------------------- 1 | "hello" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_131.json: -------------------------------------------------------------------------------- 1 | "hello\u0009world" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_132.json: -------------------------------------------------------------------------------- 1 | "hello" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_133.json: -------------------------------------------------------------------------------- 1 | "hello\n" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_134.json: -------------------------------------------------------------------------------- 1 | "hello" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_135.json: -------------------------------------------------------------------------------- 1 | 3 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_138.json: -------------------------------------------------------------------------------- 1 | 0.3 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_141.json: -------------------------------------------------------------------------------- 1 | 0.3e+5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_142.json: -------------------------------------------------------------------------------- 1 | 0.3e-5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_143.json: -------------------------------------------------------------------------------- 1 | 0.3e5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_144.json: -------------------------------------------------------------------------------- 1 | "hello" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_146.json: -------------------------------------------------------------------------------- 1 | -3 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_148.json: -------------------------------------------------------------------------------- 1 | -3.1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_152.json: -------------------------------------------------------------------------------- 1 | 0.5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_166.json: -------------------------------------------------------------------------------- 1 | "\"" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_167.json: -------------------------------------------------------------------------------- 1 | "\"3.5" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_168.json: -------------------------------------------------------------------------------- 1 | "\"." -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_170.json: -------------------------------------------------------------------------------- 1 | "\"....." -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_174.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\"\"\"\"", 3 | 0.5 4 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_182.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\".5", 3 | ".5\"", 4 | 0.5 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_196.json: -------------------------------------------------------------------------------- 1 | "\u0027" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_215.json: -------------------------------------------------------------------------------- 1 | [ 2 | 1, 3 | 2, 4 | 3 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_38.json: -------------------------------------------------------------------------------- 1 | "\uFFFE" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_39.json: -------------------------------------------------------------------------------- 1 | "\uFFFF" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_41.json: -------------------------------------------------------------------------------- 1 | "" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_42.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_43.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_45.json: -------------------------------------------------------------------------------- 1 | 0.5 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_47.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": {} 3 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_48.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": 2 3 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_49.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": 2, 3 | "2.5": [ 4 | 3, 5 | 4, 6 | {}, 7 | { 8 | "5": [ 9 | "6" 10 | ] 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_50.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": 2, 3 | "2.5": [ 4 | 3, 5 | 4, 6 | {}, 7 | { 8 | "5": [ 9 | "6" 10 | ], 11 | "7": [ 12 | 8 13 | ] 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_51.json: -------------------------------------------------------------------------------- 1 | 1234 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_52.json: -------------------------------------------------------------------------------- 1 | -1234 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_53.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": 2, 3 | "3": 4 4 | } -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_56.json: -------------------------------------------------------------------------------- 1 | 123.456e142 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_57.json: -------------------------------------------------------------------------------- 1 | 123.456e-142 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_58.json: -------------------------------------------------------------------------------- 1 | 123.456e+142 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_60.json: -------------------------------------------------------------------------------- 1 | "1\u2000" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_61.json: -------------------------------------------------------------------------------- 1 | "1\u20001" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_62.json: -------------------------------------------------------------------------------- 1 | 2 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_65.json: -------------------------------------------------------------------------------- 1 | 3 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_67.json: -------------------------------------------------------------------------------- 1 | "3" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_68.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_70.json: -------------------------------------------------------------------------------- 1 | 3.2e+1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_71.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4 5 | ] 6 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_72.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ] 8 | ] 9 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_73.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ], 8 | 6 9 | ] 10 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_74.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ], 8 | 6 9 | ], 10 | 7 11 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_75.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ], 8 | 6 9 | ], 10 | 7, 11 | 8 12 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_76.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3, 3 | [ 4 | 4, 5 | [ 6 | 5 7 | ], 8 | 6 9 | ], 10 | 7, 11 | 8, 12 | 9 13 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_84.json: -------------------------------------------------------------------------------- 1 | 3e+1 -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_88.json: -------------------------------------------------------------------------------- 1 | [ 2 | 7 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_89.json: -------------------------------------------------------------------------------- 1 | [ 2 | 7 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_90.json: -------------------------------------------------------------------------------- 1 | [ 2 | 7 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_92.json: -------------------------------------------------------------------------------- 1 | "hello" -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_93.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hello" 3 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_94.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hello", 3 | "bye" 4 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_95.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hello", 3 | "bye\n" 4 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_96.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hello", 3 | "bye\n\r\t" 4 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_97.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hello", 3 | "bye\n\r\t\b" 4 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_98.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hello", 3 | "bye\n\r\t\b", 4 | true 5 | ] -------------------------------------------------------------------------------- /src/test/resources/nst_files/y_99.json: -------------------------------------------------------------------------------- 1 | [ 2 | "hello", 3 | "bye\n\r\t\b", 4 | true, 5 | false 6 | ] -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/any-object-example-b.yaml: -------------------------------------------------------------------------------- 1 | none: [ 2 | ~, 3 | null 4 | ], 5 | bool: [ 6 | true, 7 | false, 8 | on, 9 | off 10 | ], 11 | int: 42 12 | float: 3.14159 13 | list: [ 14 | LITE, 15 | RES_ACID, 16 | SUS_DEXT 17 | ], 18 | dict: { 19 | hp: 13, 20 | sp: 5 21 | } 22 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/any-object-example.yaml: -------------------------------------------------------------------------------- 1 | none: [~, null] 2 | bool: [true, false, on, off] 3 | int: 42 4 | float: 3.14159 5 | list: [LITE, RES_ACID, SUS_DEXT] 6 | dict: {hp: 13, sp: 5} 7 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/list-bean-1.yaml: -------------------------------------------------------------------------------- 1 | children: 2 | - aaa 3 | - bbb 4 | developers: 5 | - name: Fred 6 | role: creator 7 | - name: John 8 | role: committer 9 | name: Bean123 10 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/list-bean-2.yaml: -------------------------------------------------------------------------------- 1 | children: 2 | - aaa 3 | - bbb 4 | developers: 5 | - !!examples.collections.TypeSafeListWithInterfaceTest$Developer 6 | name: Fred 7 | role: creator 8 | - !!examples.collections.TypeSafeListWithInterfaceTest$Committer 9 | key: 34 10 | name: John 11 | role: committer 12 | name: Bean123 -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/list-bean-2b.yaml: -------------------------------------------------------------------------------- 1 | children: [ 2 | aaa, 3 | bbb 4 | ], 5 | developers: [ 6 | !Developer { 7 | name: Fred, 8 | role: creator 9 | }, 10 | !Committer { 11 | key: "34", 12 | name: John, 13 | role: committer 14 | } 15 | ], 16 | name: Bean123 17 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/list-bean-3.yaml: -------------------------------------------------------------------------------- 1 | developers: 2 | - name: Fred 3 | role: creator 4 | - name: John 5 | role: committer 6 | name: Bean123 7 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/list-bean-4.yaml: -------------------------------------------------------------------------------- 1 | children: 2 | - aaa 3 | - bbb 4 | developers: 5 | - !!examples.collections.TypeSafeListNoGerericsTest$Developer 6 | name: Fred 7 | role: creator 8 | - !!examples.collections.TypeSafeListNoGerericsTest$Developer 9 | name: John 10 | role: committer 11 | name: Bean123 12 | 13 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/list-bean-4b.yaml: -------------------------------------------------------------------------------- 1 | children: [ 2 | aaa, 3 | bbb 4 | ], 5 | developers: [ 6 | !Developer { 7 | name: Fred, 8 | role: creator 9 | }, 10 | !Developer { 11 | name: John, 12 | role: committer 13 | } 14 | ], 15 | name: Bean123 16 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-1.yaml: -------------------------------------------------------------------------------- 1 | name: Bean123 2 | properties: 3 | key2: value2 4 | key1: value1 5 | sorted: 6 | '1': one 7 | '2': two -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-10.yaml: -------------------------------------------------------------------------------- 1 | data: 2 | aaa: 1 3 | bbb: 2 4 | zzz: 3 5 | developers: 6 | team1: 7 | name: Fred 8 | role: creator 9 | team2: 10 | name: John 11 | role: committer 12 | name: Bean123 13 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-10b.yaml: -------------------------------------------------------------------------------- 1 | data: { 2 | aaa: 1, 3 | bbb: 2, 4 | zzz: 3 5 | } 6 | developers: { 7 | team1: { 8 | name: Fred, 9 | role: creator 10 | }, 11 | team2: { 12 | name: Bean123, 13 | role: committer 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-11.yaml: -------------------------------------------------------------------------------- 1 | data: 2 | aaa: 1 3 | bbb: 2 4 | developers: 5 | team1: 6 | name: Fred 7 | role: creator 8 | team2: 9 | name: John 10 | role: committer 11 | team3: !!examples.collections.TypeSafeMapTest$Developer222 12 | name: Bill 13 | role: head 14 | name: Bean123 15 | 16 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-11b.yaml: -------------------------------------------------------------------------------- 1 | data: { 2 | aaa: 1, 3 | bbb: 2 4 | } 5 | developers: { 6 | team1: { 7 | name: Fred, 8 | role: creator 9 | }, 10 | team2: { 11 | name: John, 12 | role: committer 13 | }, 14 | team3: !Developer { 15 | name: Bill, 16 | role: head 17 | } 18 | } 19 | name: Bean123 20 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-12.yaml: -------------------------------------------------------------------------------- 1 | data: 2 | ? name: Andy 3 | role: tester 4 | : BLACK 5 | ? name: Lisa 6 | role: owner 7 | : RED 8 | developers: 9 | WHITE: 10 | name: Fred 11 | role: creator 12 | BLACK: 13 | name: John 14 | role: committer 15 | name: Bean123 16 | 17 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-12b.yaml: -------------------------------------------------------------------------------- 1 | data: { 2 | ? { name: Andy, 3 | role: tester } 4 | : BLACK 5 | ? { name: Lisa, 6 | role: owner } 7 | : RED 8 | } 9 | developers: { 10 | WHITE: { 11 | name: Fred, 12 | role: creator 13 | }, 14 | BLACK: { 15 | name: John, 16 | role: committer 17 | } 18 | } 19 | name: Bean123 20 | 21 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-13.yaml: -------------------------------------------------------------------------------- 1 | data: 2 | ? name: Andy 3 | role: tester 4 | : BLACK 5 | ? !!examples.collections.TypeSafeMap2Test$SuperMan 6 | name: Bill 7 | role: cleaner 8 | smart: false 9 | : BLACK 10 | ? name: Lisa 11 | role: owner 12 | : RED 13 | developers: 14 | WHITE: 15 | name: Fred 16 | role: creator 17 | RED: !!examples.collections.TypeSafeMap2Test$SuperMan 18 | name: Jason 19 | role: contributor 20 | smart: true 21 | BLACK: 22 | name: John 23 | role: committer 24 | name: Bean123 25 | 26 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-13b.yaml: -------------------------------------------------------------------------------- 1 | data: { 2 | ? { name: Andy, 3 | role: tester } 4 | : BLACK 5 | ? !SuperMan { 6 | name: Bill, 7 | role: cleanerl 8 | smart: false } 9 | : BLACK 10 | ? { name: Lisa, 11 | role: owner } 12 | : RED 13 | } 14 | developers: { 15 | WHITE: { 16 | name: Fred, 17 | role: creator 18 | }, 19 | RED: !SuperMan { 20 | name: Jason, 21 | role: contributor, 22 | smart: true 23 | }, 24 | BLACK: { 25 | name: John, 26 | role: committer 27 | } 28 | } 29 | name: Bean123 30 | 31 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-1b.yaml: -------------------------------------------------------------------------------- 1 | name: Bean123 2 | properties: { 3 | key2: value2, 4 | key1: value1 5 | } 6 | sorted: { 7 | "1": one, 8 | "2": two 9 | } 10 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-2.yaml: -------------------------------------------------------------------------------- 1 | - {'1': one, '2': two} 2 | - {key2: value2, key1: value1} 3 | - aaa 4 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-bean-2b.yaml: -------------------------------------------------------------------------------- 1 | - { 2 | "1": one, 3 | "2": two 4 | } 5 | - { 6 | key2: value2, 7 | key1: value1 8 | } 9 | - aaa 10 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-recursive-1.yaml: -------------------------------------------------------------------------------- 1 | &id001 2 | '1': one 3 | '2': two 4 | '3': *id001 5 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-recursive-1_1.yaml: -------------------------------------------------------------------------------- 1 | &id001 2 | '2': two 3 | '1': one 4 | '3': *id001 5 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-recursive-2.yaml: -------------------------------------------------------------------------------- 1 | &id001 2 | key3: *id001 3 | key2: value2 4 | key1: value1 5 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-recursive-3.yaml: -------------------------------------------------------------------------------- 1 | &id001 !!java.util.SortedMap 2 | '2': two 3 | '1': one 4 | '3': *id001 5 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/map-recursive-4.yaml: -------------------------------------------------------------------------------- 1 | &id001 !!java.util.Properties 2 | key3: *id001 3 | key2: value2 4 | key1: value1 5 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/set-bean-1.yaml: -------------------------------------------------------------------------------- 1 | developers: !!set [ 2 | { name: John, 3 | role: founder }, 4 | { name: Karl, 5 | role: user } 6 | ] 7 | name: Bean123 8 | sorted: !!set [ 9 | one, 10 | three, 11 | two ] -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/set-bean-1b.yaml: -------------------------------------------------------------------------------- 1 | developers: !!set [ 2 | { 3 | name: John, 4 | role: founder 5 | }, 6 | { 7 | name: Karl, 8 | role: user 9 | } 10 | ], 11 | name: Bean123 12 | sorted: !!set [ 13 | one, 14 | three, 15 | two 16 | ] -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/set-bean-2.yaml: -------------------------------------------------------------------------------- 1 | developers: !!set 2 | ? name: Karl 3 | role: user 4 | : null 5 | ? name: John 6 | role: founder 7 | : null 8 | 9 | name: Bean123 10 | 11 | sorted: !!set 12 | two: null 13 | one: null 14 | three: null -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/set-bean-3.yaml: -------------------------------------------------------------------------------- 1 | &id001 !!set 2 | ? !!examples.collections.TypeSafeSetImplementationsTest$Box 3 | id: id123 4 | set: *id001 5 | : null 6 | 111: null 7 | aaa: null 8 | -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/set-bean-4.yaml: -------------------------------------------------------------------------------- 1 | !!set {bbb: null, aaa: null, zzz: null} -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/set-bean-5.yaml: -------------------------------------------------------------------------------- 1 | !!java.util.SortedSet {zzz: null, aaa: null, bbb: null} -------------------------------------------------------------------------------- /src/test/resources/snake-yaml-examples/set-bean-6.yaml: -------------------------------------------------------------------------------- 1 | developers: !!set 2 | ? !!examples.collections.TypeSafeSetImplementationsTest$SuperDeveloper 3 | name: Bill 4 | role: super 5 | : null 6 | ? name: John 7 | role: founder 8 | : null 9 | ? name: Karl 10 | role: user 11 | : null 12 | name: Bean123 13 | sorted: !!set 14 | one: null 15 | three: null 16 | two: null -------------------------------------------------------------------------------- /src/test/resources/yaml/complex-mapping.yaml: -------------------------------------------------------------------------------- 1 | ? { MyField: parent, Id: 1 }: { 2 | ? !net.openhft.chronicle.wire.MyMarshallable { MyField: key1, Id: 1 }: value1, 3 | ? !net.openhft.chronicle.wire.MyMarshallable { MyField: key2, Id: 2 }: value2 4 | } 5 | -------------------------------------------------------------------------------- /src/test/resources/yaml/int-mapping-incomplete.yaml: -------------------------------------------------------------------------------- 1 | example: { 2 | ? !int 3 | -------------------------------------------------------------------------------- /src/test/resources/yaml/int-mapping.yaml: -------------------------------------------------------------------------------- 1 | example: { 2 | ? !int 1: !int 11, 3 | ? !int 2: !int 2, 4 | ? !int 3: !int 3 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/yaml/k8s/example1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Pod 4 | metadata: 5 | name: frontend 6 | spec: 7 | containers: 8 | - name: app 9 | image: images.my-company.example/app:v4 10 | resources: 11 | requests: 12 | memory: "64Mi" 13 | cpu: "250m" 14 | limits: 15 | memory: "128Mi" 16 | cpu: "500m" 17 | - name: log-aggregator 18 | image: images.my-company.example/log-aggregator:v6 19 | resources: 20 | requests: 21 | memory: "64Mi" 22 | cpu: "250m" 23 | limits: 24 | memory: "128Mi" 25 | cpu: "500m" 26 | -------------------------------------------------------------------------------- /src/test/resources/yaml/k8s/example2.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: frontend 5 | spec: 6 | containers: 7 | - name: app 8 | image: images.my-company.example/app:v4 9 | resources: 10 | requests: 11 | ephemeral-storage: "2Gi" 12 | limits: 13 | ephemeral-storage: "4Gi" 14 | volumeMounts: 15 | - name: ephemeral 16 | mountPath: "/tmp" 17 | - name: log-aggregator 18 | image: images.my-company.example/log-aggregator:v6 19 | resources: 20 | requests: 21 | ephemeral-storage: "2Gi" 22 | limits: 23 | ephemeral-storage: "4Gi" 24 | volumeMounts: 25 | - name: ephemeral 26 | mountPath: "/tmp" 27 | volumes: 28 | - name: ephemeral 29 | emptyDir: {} 30 | -------------------------------------------------------------------------------- /src/test/resources/yaml/k8s/example3.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: nginx-deployment 5 | spec: 6 | selector: 7 | matchLabels: 8 | app: nginx 9 | replicas: 2 # tells deployment to run 2 pods matching the template 10 | template: 11 | metadata: 12 | labels: 13 | app: nginx 14 | spec: 15 | containers: 16 | - name: nginx 17 | image: nginx:1.14.2 18 | ports: 19 | - containerPort: 80 20 | -------------------------------------------------------------------------------- /src/test/resources/yaml/k8s/example7.yaml: -------------------------------------------------------------------------------- 1 | containers: 2 | - env: 3 | - name: POD_ID 4 | valueFrom: # etc etc 5 | - name: LOG_PATH 6 | value: /var/log/mycompany/$(POD_ID)/logs 7 | -------------------------------------------------------------------------------- /src/test/resources/yaml/k8s/example9.yaml: -------------------------------------------------------------------------------- 1 | kind: List 2 | apiVersion: v1 3 | items: 4 | - kind: ServiceAccount 5 | apiVersion: v1 6 | metadata: 7 | name: sdn 8 | namespace: openshift-sdn 9 | - apiVersion: authorization.openshift.io/v1 10 | kind: ClusterRoleBinding 11 | metadata: 12 | name: sdn-cluster-reader 13 | roleRef: 14 | name: cluster-reader 15 | subjects: 16 | - kind: ServiceAccount 17 | name: sdn 18 | namespace: openshift-sdn 19 | - apiVersion: authorization.openshift.io/v1 20 | kind: ClusterRoleBinding 21 | metadata: 22 | name: sdn-reader 23 | roleRef: 24 | name: system:sdn-reader 25 | subjects: 26 | - kind: ServiceAccount 27 | name: sdn 28 | namespace: openshift-sdn 29 | - apiVersion: authorization.openshift.io/v1 30 | kind: ClusterRoleBinding 31 | metadata: 32 | name: sdn-node-proxier 33 | roleRef: 34 | name: system:node-proxier 35 | subjects: 36 | - kind: ServiceAccount 37 | name: sdn 38 | namespace: openshift-sdn 39 | # TODO: PSP binding 40 | -------------------------------------------------------------------------------- /src/test/resources/yaml/sample1.yaml: -------------------------------------------------------------------------------- 1 | ladderDefinitions: [ 2 | !LadderDefinition { 3 | ccyPair: NZDUSD, 4 | name: NZDUSD-CNX, 5 | ecns: [ 6 | CNX 7 | ], 8 | maxPriceMoveInPipsFromTopOfBook: 400, 9 | } 10 | ] 11 | --- 12 | -------------------------------------------------------------------------------- /src/test/resources/yaml/sample2.yaml: -------------------------------------------------------------------------------- 1 | --- !!meta-data 2 | !net.openhft.chronicle.wire.DemarshallableObject { 3 | name: test, 4 | value: 12345 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/yaml/services.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 - http://chronicle.software 2 | { 3 | services: { 4 | fix-web-gateway: { 5 | # 534534 6 | 7 | inputs: #523523523 8 | [ 9 | web-gateway-periodic-updates, 10 | 11 | # errwe 12 | session-state-updates, 13 | fix-config-out, 14 | fix-search-out 15 | ] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_10_NodeAppearsTwiceInThisDocument.out.yaml: -------------------------------------------------------------------------------- 1 | hr: [ 2 | Mark McGwire, 3 | Sammy Sosa 4 | ] 5 | rbi: [ 6 | Sammy Sosa, 7 | Ken Griffey 8 | ] 9 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_10_NodeAppearsTwiceInThisDocument.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | hr: 3 | - Mark McGwire 4 | # Following node labeled SS 5 | - &SS Sammy Sosa 6 | rbi: 7 | - *SS # Subsequent occurrence 8 | - Ken Griffey 9 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_11MappingBetweenSequences.yaml: -------------------------------------------------------------------------------- 1 | ? - Detroit Tigers 2 | - Chicago cubs 3 | : 4 | - 2001-07-23 5 | 6 | ? [ New York Yankees, 7 | Atlanta Braves ] 8 | : [ 2001-07-02, 2001-08-12, 9 | 2001-08-14 ] 10 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_12CompactNestedMapping.out.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | item: Super Hoop, 4 | quantity: 1 5 | }, 6 | { 7 | item: Basketball, 8 | quantity: 4 9 | }, 10 | { 11 | item: Big Shoes, 12 | quantity: 1 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_12CompactNestedMapping.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # Products purchased 3 | - item : Super Hoop 4 | quantity: 1 5 | - item : Basketball 6 | quantity: 4 7 | - item : Big Shoes 8 | quantity: 1 9 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_13InLiteralsNewlinesArePreserved.out.yaml: -------------------------------------------------------------------------------- 1 | "\\//||\\/||\n// || ||__\n" 2 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_13InLiteralsNewlinesArePreserved.yaml: -------------------------------------------------------------------------------- 1 | # ASCII Art 2 | --- | 3 | \//||\/|| 4 | // || ||__ 5 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_14InThefoldedScalars.out.yaml: -------------------------------------------------------------------------------- 1 | Mark McGwire's year was crippled by a knee injury. 2 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_14InThefoldedScalars.yaml: -------------------------------------------------------------------------------- 1 | --- > 2 | Mark McGwire's 3 | year was crippled 4 | by a knee injury. 5 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_15FoldedNewlines.yaml: -------------------------------------------------------------------------------- 1 | > 2 | Sammy Sosa completed another 3 | fine season with great stats. 4 | 5 | 63 Home Runs 6 | 0.288 Batting Average 7 | 8 | What a year! 9 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_16IndentationDeterminesScope.yaml: -------------------------------------------------------------------------------- 1 | name: Mark McGwire 2 | accomplishment: > 3 | Mark set a major league 4 | home run record in 1998. 5 | stats: | 6 | 65 Home Runs 7 | 0.278 Batting Average 8 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_17QuotedScalars.out.yaml: -------------------------------------------------------------------------------- 1 | unicode: "Sosa did fine.\u263A" 2 | control: "\b1998\t1999\t2000\n" 3 | hex esc: "\r\n is \r\n" 4 | single: '"Howdy!" he cried.' 5 | quoted: " # Not a 'comment'." 6 | tie-fighter: "|\\-*-/|" 7 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_17QuotedScalars.yaml: -------------------------------------------------------------------------------- 1 | unicode: "Sosa did fine.\u263A" 2 | control: "\b1998\t1999\t2000\n" 3 | hex esc: "\x0d\x0a is \r\n" 4 | 5 | single: '"Howdy!" he cried.' 6 | quoted: ' # Not a ''comment''.' 7 | tie-fighter: '|\-*-/|' 8 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_18Multi_lineFlowScalars.yaml: -------------------------------------------------------------------------------- 1 | plain: 2 | This unquoted scalar 3 | spans many lines. 4 | 5 | quoted: "So does this 6 | quoted scalar.\n" 7 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_18Multi_lineFlowScalarsFixed.yaml: -------------------------------------------------------------------------------- 1 | plain: " 2 | This unquoted scalar 3 | spans many lines." 4 | quoted: "So does this 5 | quoted scalar.\n" 6 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_19Integers.out.yaml: -------------------------------------------------------------------------------- 1 | canonical: 12345 2 | decimal: 12345 3 | sexagesimal: !Time 03:25:45 4 | octal: 12 5 | hexadecimal: 12 6 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_19Integers.yaml: -------------------------------------------------------------------------------- 1 | canonical: 12345 2 | decimal: +12_345 3 | sexagesimal: 3:25:45 4 | octal: 0o14 5 | hexadecimal: 0xC 6 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_1_SequenceOfScalars.out.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | Mark McGwire, 3 | Sammy Sosa, 4 | Ken Griffey 5 | ] 6 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_1_SequenceOfScalars.yaml: -------------------------------------------------------------------------------- 1 | - Mark McGwire 2 | - Sammy Sosa 3 | - Ken Griffey 4 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_20FloatingPoint.yaml: -------------------------------------------------------------------------------- 1 | canonical: 1.23015e+3 2 | exponential: 12.3015e+02 3 | sexagesimal: 20:30.15 4 | fixed: 1_230.15 5 | negative infinity: -.inf 6 | not a number: .NaN 7 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_21Miscellaneous.yaml: -------------------------------------------------------------------------------- 1 | null: 2 | booleans: [ true, false ] 3 | string: '012345' 4 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_21MiscellaneousBis.out.yaml: -------------------------------------------------------------------------------- 1 | null: ~ 2 | true: yes 3 | false: no 4 | string: "12345" 5 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_21MiscellaneousBis.yaml: -------------------------------------------------------------------------------- 1 | null: ~ 2 | true: yes 3 | false: no 4 | string: '12345' 5 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_21MiscellaneousFixed.yaml: -------------------------------------------------------------------------------- 1 | { 2 | null: , 3 | booleans: [ true, false ], 4 | string: '012345' 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_22Timestamps.yaml: -------------------------------------------------------------------------------- 1 | canonical: 2001-12-15T02:59:43.1Z 2 | iso8601: 2001-12-14t21:59:43.10-05:00 3 | spaced: 2001-12-14 21:59:43.10 -5 4 | date: 2002-12-14 5 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_23VariousExplicitTags.out.yaml: -------------------------------------------------------------------------------- 1 | not-date: "2002-04-28" 2 | picture: !!binary R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5OTk6enp56enmleECcgggoBADs= 3 | application specific tag: "The semantics of the tag\nabove may be different for\ndifferent documents.\n" 4 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_23VariousExplicitTags.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | not-date: !!str 2002-04-28 3 | 4 | picture: !!binary | 5 | R0lGODlhDAAMAIQAAP//9/X 6 | 17unp5WZmZgAAAOfn515eXv 7 | Pz7Y6OjuDg4J+fn5OTk6enp 8 | 56enmleECcgggoBADs= 9 | 10 | application specific tag: !something | 11 | The semantics of the tag 12 | above may be different for 13 | different documents. 14 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_24GlobalTags.yaml: -------------------------------------------------------------------------------- 1 | %TAG ! tag:clarkevans.com,2002: 2 | --- !shape 3 | # Use the ! handle for presenting 4 | # tag:clarkevans.com,2002:circle 5 | - !circle 6 | center: &ORIGIN {x: 73, y: 129} 7 | radius: 7 8 | - !line 9 | start: *ORIGIN 10 | finish: { x: 89, y: 102 } 11 | - !label 12 | start: *ORIGIN 13 | color: 0xFFEEBB 14 | text: Pretty vector drawing. 15 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_25UnorderedSets.yaml: -------------------------------------------------------------------------------- 1 | # Sets are represented as a 2 | # Mapping where each key is 3 | # associated with a null value 4 | --- !!set 5 | ? Mark McGwire 6 | ? Sammy Sosa 7 | ? Ken Griff 8 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_26OrderedMappings.yaml: -------------------------------------------------------------------------------- 1 | # ordered maps are represented as 2 | # a sequence of mappings, with 3 | # each mapping having one key 4 | --- !!omap 5 | - Mark McGwire: 65 6 | - Sammy Sosa: 63 7 | - Ken Griffy: 58 8 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_27Invoice.yaml: -------------------------------------------------------------------------------- 1 | --- ! 2 | invoice: 34843 3 | date : 2001-01-23 4 | bill-to: &id001 5 | given : Chris 6 | family : Dumars 7 | address: 8 | lines: | 9 | 458 Walkman Dr. 10 | Suite #292 11 | city : Royal Oak 12 | state : MI 13 | postal : 48046 14 | ship-to: *id001 15 | product: 16 | - sku : BL394D 17 | quantity : 4 18 | description : Basketball 19 | price : 450.00 20 | - sku : BL4438H 21 | quantity : 1 22 | description : Super Hoop 23 | price : 2392.00 24 | tax : 251.42 25 | total: 4443.52 26 | comments: 27 | Late afternoon is best. 28 | Backup contact is Nancy 29 | Billsmer @ 338-4338. 30 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_28LogFile.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | Time: 2001-11-23 15:01:42 -5 3 | User: ed 4 | Warning: 5 | This is an error message 6 | for the log file 7 | --- 8 | Time: 2001-11-23 15:02:31 -5 9 | User: ed 10 | Warning: 11 | A slightly different error 12 | message. 13 | --- 14 | Date: 2001-11-23 15:03:17 -5 15 | User: ed 16 | Fatal: 17 | Unknown variable "bar" 18 | Stack: 19 | - file: TopClass.py 20 | line: 23 21 | code: | 22 | x = MoreObject("345\n") 23 | - file: MoreClass.py 24 | line: 58 25 | code: |- 26 | foo = bar 27 | 28 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_2_MappingScalarsToScalars.out.yaml: -------------------------------------------------------------------------------- 1 | hr: 65 2 | avg: 0.278 3 | rbi: 147 4 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_2_MappingScalarsToScalars.yaml: -------------------------------------------------------------------------------- 1 | hr: 65 # Home runs 2 | avg: 0.278 # Batting average 3 | rbi: 147 # Runs Batted In 4 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_3_MappingScalarsToSequences.out.yaml: -------------------------------------------------------------------------------- 1 | american: [ 2 | Boston Red Sox, 3 | Detroit Tigers, 4 | New York Yankees 5 | ] 6 | national: [ 7 | New York Mets, 8 | Chicago Cubs, 9 | Atlanta Braves 10 | ] 11 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_3_MappingScalarsToSequences.yaml: -------------------------------------------------------------------------------- 1 | american: 2 | - Boston Red Sox 3 | - Detroit Tigers 4 | - New York Yankees 5 | national: 6 | - New York Mets 7 | - Chicago Cubs 8 | - Atlanta Braves 9 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_4_SequenceOfMappings.out.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | name: Mark McGwire, 4 | hr: 65, 5 | avg: 0.278 6 | }, 7 | { 8 | name: Sammy Sosa, 9 | hr: 63, 10 | avg: 0.288 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_4_SequenceOfMappings.yaml: -------------------------------------------------------------------------------- 1 | - 2 | name: Mark McGwire 3 | hr: 65 4 | avg: 0.278 5 | - 6 | name: Sammy Sosa 7 | hr: 63 8 | avg: 0.288 9 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_5_SequenceOfSequences.out.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | name, 4 | hr, 5 | avg 6 | ], 7 | [ 8 | Mark McGwire, 9 | 65, 10 | 0.278 11 | ], 12 | [ 13 | Sammy Sosa, 14 | 63, 15 | 0.288 16 | ] 17 | ] 18 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_5_SequenceOfSequences.yaml: -------------------------------------------------------------------------------- 1 | - [name , hr, avg ] 2 | - [Mark McGwire, 65, 0.278] 3 | - [Sammy Sosa , 63, 0.288] 4 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_6_MappingOfMappings.out.yaml: -------------------------------------------------------------------------------- 1 | Mark McGwire: { 2 | hr: 65, 3 | avg: 0.278 4 | } 5 | Sammy Sosa: { 6 | hr: 63, 7 | avg: 0.288 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_6_MappingOfMappings.yaml: -------------------------------------------------------------------------------- 1 | Mark McGwire: {hr: 65, avg: 0.278} 2 | Sammy Sosa: { 3 | hr: 63, 4 | avg: 0.288 5 | } 6 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_7_TwoDocumentsInAStream.out.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | Mark McGwire, 3 | Sammy Sosa, 4 | Ken Griffey 5 | ] 6 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_7_TwoDocumentsInAStream.yaml: -------------------------------------------------------------------------------- 1 | # Ranking of 1998 home runs 2 | --- 3 | - Mark McGwire 4 | - Sammy Sosa 5 | - Ken Griffey 6 | 7 | # Team ranking 8 | --- 9 | - Chicago Cubs 10 | - St Louis Cardinals 11 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_8_PlayByPlayFeed.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | time: 20:03:20 3 | player: Sammy Sosa 4 | action: strike (miss) 5 | ... 6 | --- 7 | time: 20:03:47 8 | player: Sammy Sosa 9 | action: grand slam 10 | ... 11 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_9_SingleDocumentWithTwoComments.out.yaml: -------------------------------------------------------------------------------- 1 | hr: [ 2 | Mark McGwire, 3 | Sammy Sosa 4 | ] 5 | rbi: [ 6 | Sammy Sosa, 7 | Ken Griffey 8 | ] 9 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/2_9_SingleDocumentWithTwoComments.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | hr: # 1998 hr ranking 3 | - Mark McGwire 4 | - Sammy Sosa 5 | rbi: 6 | # 1998 rbi ranking 7 | - Sammy Sosa 8 | - Ken Griffey 9 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/README.adoc: -------------------------------------------------------------------------------- 1 | Please see the spec attached below 2 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/spec.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenHFT/Chronicle-Wire/c8ca01bb62e9b6e46318624a6a4a96b4d5b21d38/src/test/resources/yaml/spec/spec.pdf -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/types/map.yaml: -------------------------------------------------------------------------------- 1 | # Unordered set of key: value pairs. 2 | Block style: !!map 3 | Clark : Evans 4 | Brian : Ingerson 5 | Oren : Ben-Kiki 6 | Flow style: !!map { Clark: Evans, Brian: Ingerson, Oren: Ben-Kiki } 7 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/types/map_mixed_tags.yaml: -------------------------------------------------------------------------------- 1 | # Unordered set of key: value pairs. 2 | Block style: ! 3 | Clark : Evans 4 | Brian : Ingerson 5 | Oren : Ben-Kiki 6 | Flow style: { Clark: Evans, Brian: Ingerson, Oren: Ben-Kiki } 7 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/types/merge.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - &CENTER { x: 1, y: 2 } 3 | - &LEFT { x: 0, y: 2 } 4 | - &BIG { r: 10 } 5 | - &SMALL { r: 1 } 6 | 7 | # All the following maps are equal: 8 | 9 | - # Explicit keys 10 | x: 1 11 | y: 2 12 | r: 10 13 | label: center/big 14 | 15 | - # Merge one map 16 | << : *CENTER 17 | r: 10 18 | label: center/big 19 | 20 | - # Merge multiple maps 21 | << : [ *CENTER, *BIG ] 22 | label: center/big 23 | 24 | - # Override 25 | << : [ *BIG, *LEFT, *SMALL ] 26 | x: 1 27 | label: center/big 28 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/types/omap.yaml: -------------------------------------------------------------------------------- 1 | # Explicitly typed ordered map (dictionary). 2 | Bestiary: !!omap 3 | - aardvark: African pig-like ant eater. Ugly. 4 | - anteater: South-American ant eater. Two species. 5 | - anaconda: South-American constrictor snake. Scaly. 6 | # Etc. 7 | # Flow style 8 | Numbers: !!omap [ one: 1, two: 2, three : 3 ] 9 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/types/pairs.yaml: -------------------------------------------------------------------------------- 1 | # Explicitly typed pairs. 2 | Block tasks: !!pairs 3 | - meeting: with team. 4 | - meeting: with boss. 5 | - break: lunch. 6 | - meeting: with client. 7 | Flow tasks: !!pairs [ meeting: with team, meeting: with boss ] 8 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/types/seq.yaml: -------------------------------------------------------------------------------- 1 | # Ordered sequence of nodes 2 | Block style: !!seq 3 | - Mercury # Rotates - no light/dark sides. 4 | - Venus # Deadliest. Aptly named. 5 | - Earth # Mostly dirt. 6 | - Mars # Seems empty. 7 | - Jupiter # The king. 8 | - Saturn # Pretty. 9 | - Uranus # Where the sun hardly shines. 10 | - Neptune # Boring. No rings. 11 | - Pluto # You call this a planet? 12 | Flow style: !!seq [ Mercury, Venus, Earth, Mars, # Rocks 13 | Jupiter, Saturn, Uranus, Neptune, # Gas 14 | Pluto ] # Overrated 15 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/types/set.yaml: -------------------------------------------------------------------------------- 1 | # Explicitly typed set. 2 | baseball players: !!set 3 | ? Mark McGwire 4 | ? Sammy Sosa 5 | ? Ken Griffey 6 | # Flow style 7 | baseball teams: !!set { Boston Red Sox, Detroit Tigers, New York Yankees } 8 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/types/v.yaml: -------------------------------------------------------------------------------- 1 | --- # New schema 2 | link with: 3 | - = : library1.dll 4 | version: 1.2 5 | -------------------------------------------------------------------------------- /src/test/resources/yaml/spec/types/value.yaml: -------------------------------------------------------------------------------- 1 | --- # Old schema 2 | link with: 3 | - library1.dll 4 | - library2.dll 5 | --- # New schema 6 | link with: 7 | - = : library1.dll 8 | version: 1.2 9 | - = : library2.dll 10 | version: 2.3 11 | -------------------------------------------------------------------------------- /system.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2016-2022 chronicle.software 3 | # 4 | # https://chronicle.software 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | # Tracing if resources are closed/released correctly. 20 | jvm.resource.tracing=true 21 | disable.resource.warning=true 22 | disable.discard.warning=false 23 | # for profiling 24 | jvm.safepoint.enabled=false 25 | # temporary option 26 | warnAndCloseIfNotClosed=true 27 | wire.generate.v2=false 28 | # reduce logging of the announcer 29 | chronicle.announcer.disable=true 30 | dumpCodeToTarget=true 31 | compiler.options= 32 | -------------------------------------------------------------------------------- /systemProperties.adoc: -------------------------------------------------------------------------------- 1 | == System Properties 2 | Below, a number of relevant System Properties are listed. 3 | 4 | NOTE: All boolean properties below are read using link:https://javadoc.io/static/net.openhft/chronicle-core/2.23ea13/net/openhft/chronicle/core/Jvm.html#getBoolean-java.lang.String-[net.openhft.chronicle.core.Jvm.getBoolean(java.lang.String)], and so are enabled if either `-Dflag` or `-Dflag=true` or `-Dflag=yes` 5 | 6 | .System properties 7 | [cols=4*, options="header"] 8 | |=== 9 | | Property Key | Default | Description | Java Variable Name (Type) 10 | | dumpCode | `false` | If enabled, prints out specified code | _DUMP_CODE_ (boolean) 11 | | mappedFile.retain | `false` | To enable system property, see NOTE | _RETAIN_ (boolean) 12 | | regress.tests | `false` | To enable system property, see NOTE | _REGRESS_TESTS_ (boolean) 13 | | wire.generate.tuples | `false` | If enabled, @param clazz Expected object type null can be passed to request proxy marshallable tuple | _GENERATE_TUPLES_(boolean) 14 | | wire.method.prependPackage | `false` | If enabled, generated method writers will be placed under `net.openhft.wire.method` package | _PREPEND_PACKAGE_(boolean) 15 | | wire.testAsYaml | `false` | To enable system property, see NOTE | _TEXT_AS_YAML_ (boolean) 16 | | wire.usePadding | `true` | Set system property to "false" to disable | _DEFAULT_USE_PADDING_ (boolean) 17 | | yaml.logging | `false` | If enabled, controls whether to log Yaml messages for debugging or documentation | _clientReads_ (boolean) 18 | |=== 19 | --------------------------------------------------------------------------------