* Add CodeQL GitHub code scanning workflow
* Only compile main sources for code scanning
* Move test .proto files to test sources
`annotations.proto` also seems to be only relevant for tests because the test
explicitly registers them as extensions. By default the Proto adapter does not
consider them.
* Address some code scanning findings
* Fix some more findings
* Fix RuntimeTypeAdapterFactory depending on internal Streams class
* Clean up gson-extras project, make it Maven module of gson-parent
* Remove broken test from GraphAdapterBuilderTest
* Avoid NPE in PostConstructAdapterFactory
The RawType's Superclass might be null. This happens, for example, when the type is a collection.
* Add test case for NPE in PostConstructAdapterFactory
* Improve the code quality of PostConstructAdapterFactoryTest
* Improve the code quality of PostConstructAdapterFactoryTest
* Improve the code quality of PostConstructAdapterFactoryTest
Serialize graphs of objects by assigning each instance a generated ID and writing the complete graph out as a list. The output for a cycle of Rock/Scissors/Paper looks like this:
{
'0x1':{'name':'ROCK','beats':'0x2'},
'0x2':{'name':'SCISSORS','beats':'0x3'},
'0x3':{'name':'PAPER','beats':'0x1'}
}
This is work towards issue 137. The hard part is going to be deserializing that back into a graph.