Some basic questions about Mango Public Code
-
Mango Public Code:https://github.com/infiniteautomation/ma-core-public
I don't know JAVA very well. Suppose I have studied JAVA for half a year.I want to know what architecture these codes use (or how I should start reading).
The Learning Route I Formulated is: java -> spring -> Mango Public Code. Do you have any suggestions for this?My editor (Idea) told me that some of the packages used in the code did not exist.
java: packages org.apache.commons.io did not exist java: packages org.apache.commons.io.comparator did not exist java: packages org.apache.commons.io.output did not exist
and there is a strange problem: (but i really find the class in project)
java: can not find symbol symbol: class CompiledCoreVersion position: packages com.infiniteautomation.mango
-
Hi cuihe,
That's a big question!
You are correct in identifying java and spring. Java is what it's all written in so that's definitely a must if you want to read the source. As far as knowing spring, you probably only need to know much about it if you're going to be making fundamental changes on your own fork of the core. JavaScript, and more specifically AngularJS, is important also in writing modules which will appear in the UI,
The question would be easier to answer by understanding what you are trying to achieve. If it were a module, you could probably benefit by trying to understand some of the simpler data sources in the ma-modules-public repository, like the virtual data source, https://github.com/infiniteautomation/ma-modules-public
There are many classes which extend ModuleElementDefinition, and those are reflected out of modules to load them.
If you haven't seen the document linked to here, maybe some of the steps for eclipse will reveal what may be causing those packages to not be found: https://help.infiniteautomation.com/setting-up-eclipse-for-the-first-time
The core and the modules can be built by maven as described in that document, which should acquire the necessary dependencies for you.
-
thank you!
I think I need to improve myself for some time.
It's simpler to use Mango.