You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The dynamic [http://maven.apache.org/|Maven] server provides a maven repository comprising the core NetKernel system libraries. The following parts of NetKernel are dynamically introspected and logically mapped into a
4
+
maven repository REST structure.
5
+
6
+
*[ install ] / lib / *.jar - the core NetKernel foundation libraries including the NetKernel kernel, kernel API, layer0, standard module and cache.
7
+
*[ install ] / modules / urn.org.netkernel.*.jar - modules provided as part of the NKEE/NKSE installation which export a classpath.
8
+
9
+
==Important Requirement==
10
+
11
+
The Maven server will only introspectively discover jarred libraries and modules. It is therefore essential that if you are setting up a NetKernel as your maven repository server that when
12
+
you install it, you do '''*not*''' choose the "expand jarred libraries" option in the installer.
13
+
14
+
==Interface==
15
+
16
+
The Maven repository runs on the Front-End-Fulcrum server at:
17
+
18
+
http://localhost:8080/netkernel-maven/
19
+
20
+
To use a repository with a CI or remote build system then make sure to replace "localhost" with the hostname of your NetKernel instance.
21
+
22
+
====Core Libraries====
23
+
24
+
The core libraries (discovered in lib/ ) can be found on the following logical maven path...
Core libraries belong to the '''urn.com.ten60.core''' group. Each maven library artifact is named with a short name derived from the name of the introspected jar.
Module libraries belong to the '''urn.org.netkernel''' group. A maven module library artifact is named with a short name derived from the shipped jar.
49
+
50
+
For example...
51
+
52
+
modules / urn.org.netkernel.lang.groovy-x.x.x.jar
53
+
54
+
Appears in the maven repository as...
55
+
56
+
{literal}
57
+
group: urn.org.netkernel
58
+
artifactId: lang.groovy
59
+
version: x.x.x
60
+
{/literal}
61
+
62
+
Please note, only jarred modules that export a classpath are considered for inclusion in the logical maven repository - since if a module doesn't export a classpath there would be no point attempting to build against it.
63
+
64
+
====Expanded Module Jars====
65
+
66
+
If a module contains jars in a lib/ directory then these are considered to be dependencies and mapped into the special group '''urn.org.netkernel.expanded.lib''' in the maven repository - the expanded lib jars
67
+
are uniquely identified with the version number of the module from which they are exported. They can be found on the following path...
Please note that if you build against a module that has expanded lib jars then these will be automatically included as classpath dependencies.
72
+
73
+
==Dynamic Introspection==
74
+
75
+
The Maven repository is a logical constuct that is created by transforming a "discovered library resource" that is provided by an accessor that actively introspects a live system. Since this resource is in the ROC domain
76
+
it is cached and the logical maven repository resources are also cached.
77
+
78
+
Whenever updates to the NetKernel system are made (via apposite) then new libraries will be automatically discovered and immediately appear in the logical maven repository.
79
+
80
+
==Acknowledgements==
81
+
82
+
The idea of a dynamically introspected maven repository was first proposed by Brian Sletten. Both Brian and Randy Kahle provided feedback and testing during development.
The resources and source code of the '''urn:org:netkernel:introspect:maven''' module are licensed under the [http://www.1060research.com/license|1060 Public License v1.2].
0 commit comments