Makefile
The Makefile is provided with the module generated from getTemplateForDirectory. In the case of Java server implementation, you need to configure the compilation and installation of a Java JAR file:
Code Block |
---|
|
JARFILES=<JARName>
<JARName>_DIRS=<DirectoryBaseToIncludeInJAR> |
Implementation
The first thing needed to implement a server, is to import the required classes:
Code Block |
---|
language | java |
---|
title | Java Imports |
---|
|
//Suggested: import alma.<Module>.<Interface>Impl; //But anything, really
package <ChosenPackage>;
//Base component implementation, including container services and component lifecycle infrastructure
import alma.acs.component.ComponentImplBase;
//Skeleton interface for server implementation
import alma.<Module>.<Interface>Operations;
//Error definitions for catching exceptions
import alma.ServiceErr.<ExceptionName>Ex;
import alma.<Interface>Err.<ExceptionName>Ex;
//Error definitions for raising exceptions
import alma.ServiceErr.wrappers.AcsJ<ExceptionName>Ex;
import alma.<Interface>Err.wrappers.AcsJ<ExceptionName>Ex; |
...
Code Block |
---|
language | java |
---|
title | Java Server Class Definition |
---|
|
//Replace package alma.<Module>.<Interface>Impl; //for:
package alma.<PackageChosenForComponentHelper>;
//Replace import alma.Observatory.SchedulingImpl.SchedulingImpl; //for:
import alma.<PackageChosenForComponentImpl>.<ClassNameForComponentImpl>;
//Replace return new SchedulingImpl(); // for
return new <ClassNameForComponentImpl>(); |
...
Code Block |
---|
language | java |
---|
title | Java Component Interaction |
---|
|
//Shared
import alma.<Module>.<Interface>;
import alma.<Module>.<Interface>Helper;
//By Name
<Interface> comp = <Interface>Helper.narrow(this.m_containerServices.getComponent("<Name>"));
//By Interface. Must be at least one component configured as default!
<Interface> comp = <Interface>Helper.narrow(this.m_containerServices.getDefaultComponent("IDL:alma/<Module>/<Interface>:1.0"));
//Release Components
m_containerServies.releaseComponent(comp.name()); |
...
Code Block |
---|
language | java |
---|
title | Java Error Handling |
---|
|
//For catching exceptions
import alma.<Interface>Err.<ExceptionName>Ex;
catch (<ExceptionName>Ex e) {
//For raising exceptions
import alma.<Interface>Err.wrappers.AcsJ<ExceptionName>Ex;
throw new AcsJ<ExceptionName>Ex("<CustomMessage>").to<ExceptionName>Ex();
//For raising exceptions with parameters
import alma.<Interface>Err.wrappers.AcsJ<ExceptionName>Ex;
AcsJ<ExceptionName>Ex err = new AcsJ<ExceptionName>Ex("<CustomMessage>");
err.set<ParamName>(<Value>);
raisethrow err.to<ExceptionName>Ex();
//For logging an error message from the exceptions
import alma.<Interface>Err.wrappers.AcsJ<ExceptionName>Ex;
AcsJ<ExceptionName>Ex err = <Interface>ErrImpl.<ExceptionName>ExImpl()
err.log(m_logger);
raisethrow err.to<ExceptionName>Ex(); |
...