Repository navigation
Releases
v1.1.0
Four of the five modules now build from Maven Central on JDK 8, and the documentation states only what has been verified.
What builds now
| Module | Builds from Maven Central | Endpoints | In v1.0.0 |
|---|---|---|---|
IFaceSuportService |
yes | 251 | yes |
IFaceSuperService_hn |
yes | 8 | yes |
InterfaceFunction |
yes | 27 | no |
NetworkOfficeService |
yes | 72 | no |
NetPortalManagement |
no | 0 | no |
git clone https://github.com/zengyunhua/Mestudy.git
cd Mestudy
mvn -B verifyVerified on JDK 8 with Maven 3.8.7: five reactor entries, BUILD SUCCESS, eight tests. NetPortalManagement stays behind -Pprivate-deps because it needs the private Bee persistence framework.
Highlights
Two modules left the private-dependency list. InterfaceFunction and NetworkOfficeService both declared private coordinates that nothing referenced — no import, no Class.forName, no string in the resources. Removing them was not enough for NetworkOfficeService, though: it exposed a class that had never been published, BanjianVo, referenced by four classes and one mapper. It was rebuilt from mapper evidence rather than guessed, with 43 properties and the provenance recorded in the class Javadoc.
Java 8 is the baseline. maven.compiler.source / target moved from 1.7 to 1.8 in the root POM, which is now the single source of truth. The per-module overrides are gone so the five modules cannot drift apart again.
sun.misc.BASE64 is gone. 14 files moved to java.util.Base64. Encoding now returns a single line instead of the old 76-character wrapping, and decoding uses the MIME decoder so existing wrapped values still parse.
CI now rejects tracked secrets. A hygiene job fails on PEM key headers, ID-shaped numbers outside the documented placeholder, non-placeholder credentials in templates, and a tracked config.properties or ds.xml. Worth noting: SECURITY.md described such a check before it existed — this closes the gap between the claim and the code.
Three hardcoded credentials were still in the source tree. The scan above is what surfaced them, which is the argument for having written it. They are now read from the environment, and the internal Oracle host that went with them is gone.
The guides stopped claiming a deployment nobody ran. Build and deployment are now separate steps: mvn -B verify proves the code compiles and packages, and nothing more. Oracle schemas, Redis, Tomcat startup and the external gateways are documented as untested.
Behaviour changes
Constants.HBNBpasswordandConstants.SNBpasswordwere constants; they are now methods that readHBNB_SERVICE_PASSWORDandSNB_SERVICE_PASSWORD.PolicyApplicationreadsNPM_JDBC_URL,NPM_JDBC_USERNAMEandNPM_JDBC_PASSWORDinstead of a literal user, password and internal host.- If a required variable is missing, the call throws
IllegalStateException. Deployments that relied on the built-in defaults must supply these first.
Known limitations
NetPortalManagementstill needs the privatebeeframework. Nothing about that changed.- Eight tests is not a suite. They cover a client wrapper, a page object and a filter — not the 358 endpoints.
IFaceSuperService_hn/src/test/DBTest.javasits insrc/testrather thansrc/test/java, so Maven never compiles or runs it.- The
commonlayer is still duplicated across modules: 53 class names appear in more than one module, including four copies ofConstants.
What's next
Characterization tests for the endpoints, consolidating the duplicated common classes into a shared artifact, and a persistence adapter that would let NetPortalManagement build without proprietary jars. See docs/ROADMAP.md.
Full details in CHANGELOG.md.
v1.0.0
First tagged release. This is the point at which the repository stops being a dump of
production code and starts being something another developer can clone, build and read.
What this is
A multi-module Maven workspace containing the backend interface services of a Chinese
social-insurance / human-resources public service platform. Five modules cover
social-insurance queries, the social-security card lifecycle, employment services,
hospital registration, face-based survival verification, and draft-based online service
applications. Spring MVC 4 with XML configuration, MyBatis 3, Oracle, Redis, and Axis 1.x
for the provincial SOAP gateway.
It is a reference archive, not a product. The value is in the patterns and the domain
modelling, not in deploying it as-is.
What builds
| Module | Builds from Maven Central | Endpoints | Blocking dependency |
|---|---|---|---|
IFaceSuportService |
yes | 251 | — |
IFaceSuperService_hn |
yes | 8 | — |
NetworkOfficeService |
no | 72 | bee:xx.tool, com.tecsun.sisp_public:aamanagement-client |
InterfaceFunction |
no | 27 | same |
NetPortalManagement |
no | 0 | bee:cloud* |
git clone https://github.com/zengyunhua/Mestudy.git
cd Mestudy
mvn -B -pl IFaceSuportService,IFaceSuperService_hn clean package -DskipTestsVerified on JDK 8 with Maven 3.8.7: both modules produce a war and, for
IFaceSuportService, the -client.jar SDK.
Highlights
The build is no longer tied to a corporate network. Every POM hard-coded an internal
Nexus. Those declarations are gone — mirrors belong in ~/.m2/settings.xml, not in a
project POM. Three dependencies that only existed behind that Nexus were replaced with
their public equivalents, and one was removed outright because nothing imported it.
IFaceSuperService_hn had never compiled. InvokeUtil.java was saved with a UTF-8
BOM, which javac rejects. That single byte sequence meant the module could not build
under any circumstances. Fixed.
Documentation. A root README, seven guides under docs/, a README per module, and the
usual community files. All of it is in English.
CI. GitHub Actions compiles the two buildable modules on JDK 8 and runs repository
hygiene checks that fail the build if build output, credentials, or personal identity
numbers are committed.
Action required if you cloned before this release
Rotate every credential that ever appeared in this repository. The
config.properties and ds.xml files contained real database passwords and third-party
interface keys. They are no longer tracked, but they are still in the history of every
commit before this tag. Removing them from the working tree does not remove them from
your clone.
Treat as compromised: the Oracle schema passwords, the provincial gateway keys, and the
Redis credentials. See SECURITY.md for the rotation and history-scrub procedure.
Breaking changes
IFaceSuperService_hnartifactId changed fromIFaceSuportServiceto
IFaceSuperService_hn. It previously collided with the main module and was
distinguished only by version. The war is nowIFaceSuperService_hn-V1.0.0.190107.war.config.propertiesandds.xmlare no longer tracked. Copy the.exampletemplate and
fill in your own values.- The
unieap-dataexchange-clientdependency was removed. If you were relying on it
transitively, declare it yourself.
Known limitations
- Three modules cannot be built without the private
beeframework and AA client. - No assertion-based test suite. The four classes under
src/testare manualmain()
entry points. - The
commonlayer is duplicated across modules: 54 class names appear in more than one
module and no two copies are identical. Consolidating them into a shared artifact is
the highest-value refactor available. print-2.1.1.jaris vendored intoNetworkOfficeServicewith no licence metadata.
Establish its provenance before redistributing commercially.
What's next
Tagged versions of the individual modules, a shared common artifact, and JUnit coverage
for the parts that do not need an Oracle instance. See docs/ROADMAP.md.