Skip to content

Releases

v1.1.0

Choose a tag to compare

@zengyunhua zengyunhua released this 26 Oct 07:40

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 verify

Verified 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.HBNBpassword and Constants.SNBpassword were constants; they are now methods that read HBNB_SERVICE_PASSWORD and SNB_SERVICE_PASSWORD.
  • PolicyApplication reads NPM_JDBC_URL, NPM_JDBC_USERNAME and NPM_JDBC_PASSWORD instead 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

  • NetPortalManagement still needs the private bee framework. 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.java sits in src/test rather than src/test/java, so Maven never compiles or runs it.
  • The common layer is still duplicated across modules: 53 class names appear in more than one module, including four copies of Constants.

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

Choose a tag to compare

@zengyunhua zengyunhua released this 24 Oct 07:59

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 -DskipTests

Verified 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_hn artifactId changed from IFaceSuportService to
    IFaceSuperService_hn. It previously collided with the main module and was
    distinguished only by version. The war is now IFaceSuperService_hn-V1.0.0.190107.war.
  • config.properties and ds.xml are no longer tracked. Copy the .example template and
    fill in your own values.
  • The unieap-dataexchange-client dependency was removed. If you were relying on it
    transitively, declare it yourself.

Known limitations

  • Three modules cannot be built without the private bee framework and AA client.
  • No assertion-based test suite. The four classes under src/test are manual main()
    entry points.
  • The common layer 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.jar is vendored into NetworkOfficeService with 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.