Comments (6)
Hey @onders86, we are moving towards using the open source asn1c compiler by Lev Walkin.
from jpo-ode.
I use the following primary criteria in a quick search for ASN.1 compiler and runtime software:
- Java runtime
- Availability of a compiler/Java API code generator
- UPER encoding and decoding
- Free and Open Source
I was able to identify only one potentially viable candidate but have not tried to test and evaluate it.
openASN.1 which is available on SourceForge (https://sourceforge.net/projects/openasn1/?source=typ_redirect) is developed by Clayton Hoss and Marc Weyland as their diploma thesis.
This package needs to be evaluated to see if:
- The compiler implementation is up-to-date and complete to be able to parse J2735 ASN.1 schema file.
- The generated code compiles in Java 8 without any post compile modification
- The quality of the generated code is high
- The runtime library is robust and efficient
- The generated code correctly and efficiently implements ASN.1 specification, particularly J2735 schema
from jpo-ode.
Thanks for looking into this, Hamid. Is there an established benchmark we need to hit for java runtime? If not, how do we establish a benchmark? (I assume, perhaps erroneously, that the rest of the criteria you describe are either subjective - e.g., code quality - or a yes/no determination - e.g., code compiles correctly.)
from jpo-ode.
There is no externally established benchmark that I know of specifically designed for ASN.1 but there is an internal benchmark that we established as part of the SE MI ODE ASN.1 tool selection. Using that benchmark, we could compare the performance of any prospective ASN.1 library to four commercial ASN.1 libraries, including OSS.
The code quality metrics do not need to be subjective either. We could run the source code through a static analysis tool such as Sonarqube or even more sophisticated commercial tools which perform much deeper analysis.
Booz Allen development team has access to CAST AIP (http://www.castsoftware.com/products/code-analysis-tools) which assesses the quality of the software against the following Health Factors more thoroughly and deeply than SonarQube:
The following are Health Factors analyzed by CAST AIP
Robustness Engineering flaws and practices that can have an impact on the runtime stability of the application.
Efficiency Potential efficiency bottlenecks and potential future scalability issues linked to coding practices.
Security Design flaws, likelihood of having application failures and application defects due to modifications.
Changeability Difficulties to modify code in order to implement new features, correct errors, or change the applications environment.
Transferability Difficulties to move code across teams, lock in to specific resources, or longer onboard time for new team members.
Total Quality Index (TQI) An average of all the rules applicable to an application (based on technology) provided by CAST.
from jpo-ode.
Closing this topic now, as the team has a plan forward for an open source ASN1 compiler
from jpo-ode.
Whats the forward plan for asn.1 support? Looking something to improve on this subject? Regards
from jpo-ode.
Related Issues (20)
- Incomplete MAP payload support in POJO form HOT 1
- Hex Values Treated As Numeric
- SNMP Bug
- Unit Test Inclusion
- Remove or Update Log4J Dependency
- Jackson Serialization Duplicating J2735 Data Field
- TIM Encoding Failing
- SRM and MAP Position3D, heading and speed unit conversions
- Logging Levels Need Update
- J2735TransmissionAndSpeedBuilder Bug
- Out dated ODE output schema docs
- Missing geoJSON Kafka topics
- SPAT messages won't process HOT 1
- SPAT JSON Builder bugs
- Deserializing JSON to OdeData objects
- SRM empty requests list handling bug
- SRM Request Lists Fail Deserialization
- Missing PPM filtered schemas
- Fix ODE running into an exception when processing TIMs with additional RSU properties. HOT 1
- Remove DOCKER_SHARED_VOLUME_WINDOWS Environmental Variable HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jpo-ode.