(file) Return to readme.jmpi CVS log (file) (dir) Up to [Pegasus] / pegasus

  1 karl  1.7 //%2006////////////////////////////////////////////////////////////////////////
  2           //
  3           // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
  4           // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
  5           // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
  6           // IBM Corp.; EMC Corporation, The Open Group.
  7           // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8           // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9           // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10           // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11           // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12           // EMC Corporation; Symantec Corporation; The Open Group.
 13           //
 14           // Permission is hereby granted, free of charge, to any person obtaining a copy
 15           // of this software and associated documentation files (the "Software"), to
 16           // deal in the Software without restriction, including without limitation the
 17           // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 18           // sell copies of the Software, and to permit persons to whom the Software is
 19           // furnished to do so, subject to the following conditions:
 20 mark.hamzy 1.8 //
 21 karl       1.7 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 22                // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 23                // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 24                // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 25                // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 26                // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 27                // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 28                // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 29                //
 30                //==============================================================================
 31 schuur     1.1 
 32 mark.hamzy 1.9 Java Manageability Programming Interface (JMPI)
 33                -----------------------------------------------
 34 schuur     1.1 
 35 mark.hamzy 1.9 JMPI is a bridge between clients and providers written in Java and the Open
 36                Pegasus project.
 37 schuur     1.1 
 38 mark.hamzy 1.9 More information on JMPI's status can be found at 
 39                   http://www.openpegasus.org/page.tpl?ggid=799
 40 r.kieninger 1.3 
 41 schuur      1.1 
 42                 Environment settings
 43 mark.hamzy  1.9 --------------------
 44 schuur      1.1 
 45 mark.hamzy  1.9 In order to build this support a few environment variables have to used.
 46                 The following script has been proven useful for setting up the build and execution environment.
 47                 You might need to adjust this to your system layout.
 48 schuur      1.1 
 49 mark.hamzy  1.9    an example setJPeg script file:
 50 schuur      1.1    export PEGASUS_HOME=`pwd`
 51 mark.hamzy  1.9    export PEGASUS_ROOT=${PEGASUS_HOME}
 52 schuur      1.1    export PEGASUS_PLATFORM=LINUX_IX86_GNU
 53 mark.hamzy  1.9    export PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER=true
 54 schuur      1.1    export PEGASUS_DEBUG=1
 55 mark.hamzy  1.9    export JAVA_SDK=/usr/java/j2sdk1.4.2_08
 56                    export JAVA_SDKINC=${JAVA_SDK}/include
 57                    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${JAVA_SDK}/jre/lib/i386/server:${JAVA_SDK}/jre/lib/i386/native_threads:${JAVA_SDK}/jre/lib/i386
 58                    export PATH=${JAVA_SDK}/bin/:${PEGASUS_HOME}/bin:${PATH}
 59                    export CLASSPATH=${CLASSPATH}:${PEGASUS_HOME}/lib/JMPIImpl.jar
 60                 
 61                 There is now a new variable to determine which JVM to link with.  The choices are as follows:
 62 mark.hamzy  1.11      PEGASUS_JVM	gcj     Gnu's jvm (ex: gij (GNU libgcj) version 4.1.1 20060525 (Red Hat 4.1.1-1))
 63 mark.hamzy  1.9       PEGASUS_JVM	sun	Sun's jvm (ex: j2sdk1.4.2_07)
 64                       PEGASUS_JVM	ibm	IBM's jvm (ex: IBMJava2-142)
 65                       PEGASUS_JVM	bea	Suse's IBM jvm (ex: BEAJava2-1.4.2)
 66                  So, pick one and export that variable to the environment.  For example,
 67                       export PEGASUS_JVM=sun
 68 mark.hamzy  1.11 NOTE: The gcj and sun options were the only tested JVMs.
 69 schuur      1.1  
 70 mark.hamzy  1.9  There are a couple of optional environment variables to determine how the JRE is initialized.  These are
 71                  as follows (the variable name and what JRE option that it corresponds to):
 72 mark.hamzy  1.5  
 73 mark.hamzy  1.9  PEGASUS_JMPI_MAX_HEAP               -Xmx
 74                  PEGASUS_JMPI_INITIAL_HEAP           -Xms
 75                  PEGASUS_JMPI_JAVA_THREAD_STACK_SIZE -Xss
 76 mark.hamzy  1.4  
 77 mark.hamzy  1.9  So, for example, you would perform the following if you want to change the maximum heap size to 128 megabytes.
 78 mark.hamzy  1.4  
 79 mark.hamzy  1.9  export PEGASUS_JMPI_MAX_HEAP=128m
 80 mark.hamzy  1.4  
 81 mark.hamzy  1.9  There is a new optional environment variable that tells the JVM to output more debugging information.  The variable name
 82                  is called PEGASUS_JMPI_VERBOSE.  An example usage is as follows:
 83 mark.hamzy  1.4  
 84 mark.hamzy  1.9  export PEGASUS_JMPI_VERBOSE="jni,class"
 85 mark.hamzy  1.6  
 86 mark.hamzy  1.9  This will tell the JVM to output debug information on the JNI layer and class loading.
 87 mark.hamzy  1.6  
 88 mark.hamzy  1.9  When using this script, place a copy of this script above your PEGASUS_HOME directory.
 89                  "cd" to PEGASUS_HOME, and issue ". ./setJPeg". Then do a normal make.
 90 mark.hamzy  1.6  
 91 schuur      1.1  
 92 mark.hamzy  1.9  Known restrictions
 93                  ------------------
 94 schuur      1.1  
 95 mark.hamzy  1.9  This installment has the following restrictios:
 96 schuur      1.1  
 97 mark.hamzy  1.8     Unloading of idle providers is not supported and Java will increase the memory footprint.
 98 mark.hamzy  1.9     Java 1.5 is not currently supported.
 99                  
100                  
101                  Level of coverage
102                  -----------------
103                  
104                  All interfaces to a provider have a sample provider written for them and are part of the
105                  testcases.  All main CIM java classes have testcases written for them as well.
106                  
107                  
108                  Outstanding issues
109                  ------------------
110                  
111                  Java documentation needs to be written for the classes and methods within JMPI.
112                  
113                  
114                  Testing
115                  -------
116                  
117                  This installment has a set of tests located under src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests/
118 schuur      1.1  
119 mark.hamzy  1.9     Static/
120 schuur      1.1  
121 mark.hamzy  1.9        These tests have been modelled after wetest/static.
122                        For the tests, I had to modify "diff" to "diff -w", why that is needed I do not understand.
123 schuur      1.1  
124 mark.hamzy  1.9     Providers/
125 schuur      1.1  
126 mark.hamzy  1.9        These tests implement the many variants of provider interfaces.
127 schuur      1.1  
128 mark.hamzy  1.9     Client/
129 schuur      1.1  
130 mark.hamzy  1.9        These tests test out the client code and various Java classes.
131                  
132                  
133                  Running the tests
134                  -----------------
135                  
136                  Tests are run with the following process.
137                  If the repository has not been built before then issue the following:
138                  
139                     cd to ${PEGASUS_HOME}/src/Pegasus/ProviderManager2/JMPI/
140                     Issue "make repository"
141 schuur      1.1  
142                     This will load a schema to the repository and register the provider.
143                  
144 mark.hamzy  1.9  Next, run the tests.
145 schuur      1.1  
146 mark.hamzy  1.9     cd to ${PEGASUS_HOME}/src/Pegasus/ProviderManager2/JMPI/
147                     Issue "find -name \*.rsp -exec rm {} \;" to clean up *.rsp files from failed tests.
148 schuur      1.1     Issue "make poststarttests"
149                  
150                  
151                  Samples
152 mark.hamzy  1.9  -------
153                  
154                   There are four sample providers located in
155                     ${PEGASUS_HOME}/src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests/Providers/
156                  
157                     Associations/
158                  
159                        This provider implements an association provider.
160                  
161                     Instances/
162                  
163                        This provider implements an instance provider.
164                  
165                     Indications/
166 schuur      1.1  
167 mark.hamzy  1.9        This provider implements an indication provider.
168 schuur      1.1  
169 mark.hamzy  1.9     Properties/
170 schuur      1.1  
171 mark.hamzy  1.9        This provider implements a property provider.
172                  
173                     There is also sample Java code that deals with CIM classes that is located in
174                     ${PEGASUS_HOME}/src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests/Client/
175 schuur      1.1  
176                  
177                  Provider Registration
178 mark.hamzy  1.9  ---------------------
179 schuur      1.1  
180 mark.hamzy  1.9     JMPI providers are registered as usual. The Location property in PG_ProviderModule has a special format.
181 schuur      1.1  	The format is: <jar-file-name>:<provider-class-name>
182                  
183 mark.hamzy  1.8     JMPI providers now fall into two groups.
184                     1) Legacy providers use:
185                        InterfaceType = "JMPI"
186                     and use one of the 3 following based on existing JMPI samples:
187                        InterfaceVersion = "1.0.0";
188                        InterfaceVersion = "2.0.0";
189                        InterfaceVersion = "2.2.0";
190                     Note that there is no difference in behavior in the three versions.
191 mark.hamzy  1.9  
192                     instance of PG_ProviderModule
193                     {
194                        Name             = "JMPIInstanceProviderModule";
195                        Location         = "JMPIInstanceProvider.jar:Instances/JMPIInstanceProvider";
196                        Vendor           = "OpenPegasus";
197                        Version          = "2.0.0";
198                        InterfaceType    = "JMPI";
199                        InterfaceVersion = "1.0.0";
200                     };
201                  
202 mark.hamzy  1.8     2) New style providers use:
203                        InterfaceType = "JMPIExperimental"
204                     and:
205                        InterfaceVersion = "0.0.1";
206                  
207 mark.hamzy  1.9     instance of PG_ProviderModule
208                     {
209                        Name             = "JMPIExpInstanceProviderModule";
210                        Location         = "JMPIExpInstanceProvider.jar:Instances/JMPIExpInstanceProvider";
211                        Vendor           = "OpenPegasus";
212                        Version          = "2.0.0";
213                        InterfaceType    = "JMPIExperimental";
214                        InterfaceVersion = "0.0.1";
215                     };
216                  
217 schuur      1.1  
218                  Bug reports
219 mark.hamzy  1.9  -----------
220 schuur      1.1  
221 r.kieninger 1.3     Use normal Pegasus bugzilla procedures to report malfunctions.

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2