
tim@906: \section{Model of transitions}
tim@906: \subsection{General principle of model of transitions}
tim@906:         - FIS -> product -> transitions in data model
tim@906:     
tim@906: \subsection{Adding a new FIS}
tim@906: In this Section it will explained which steps has to be done to integrate a new 
tim@906: FIS into the Artifact-Server.
tim@906: This will be done using the Configuration for an FIS which use data from 
tim@906: MEDIAN.TIMESERIES Section of the DataWareHouse e.g. MARNET or STAUN
tim@906: 
tim@906: Pay attention that for publishing the Changes to the Artifact-Server you will 
tim@906: have to restart it. 
tim@906: 
tim@906: \subsubsection{Adding a new Artifactfactory}
tim@906: First step is to add a new Artifactfactory to the Configuration conf/conf.xml
tim@906: To do this you have to add a new XML-Fragment into the Section 
tim@906: /factories/artifact-factories  which look like that:
tim@906: 
tim@906: \begin{lstlisting}
tim@906: <artifact-factory name='fis\_NEWFISNAME' 
tim@906:                   description='Factory to create an artifact to be used with the FIS NEWFISNAME'  
tim@906:                   ttl='3600000' 
tim@906:                   artifact='de.intevation.artifactdatabase.ProxyArtifact'>
tim@906:                   de.intevation.gnv.artifacts.GNVProductArtifactFactory
tim@906: </artifact-factory>
tim@906: \end{lstlisting}
tim@906:  
tim@906: In this XML-Fragment you only have to replace the placeholder NEWFISNAME with a 
tim@906: unique short Name for the new FIS.
tim@906: 
tim@906: \subsubsection{Adding a new Artifact for Artifactfactory}
tim@906: The next Step is to define the Artifact itself.
tim@906: For this it is necessary to add an XML-Fragment into the Section /artifacts of 
tim@906: the main Configuration-File /conf/conf.xml
tim@906: \begin{lstlisting}
tim@906: <artifact name='fis\_NEWFISNAME'>
tim@906:     <products>
tim@906:      ...
tim@906:     </products>
tim@906: </artifact>
tim@906: \end{lstlisting}
tim@906: 
tim@906: In this XML- Fragment it is also required to replave the placeholder NEWFISNAME 
tim@906: with the name which was used to configure the Artifact-Factory.
tim@906: 
tim@906: Now the ArtifactServer can serv an additional FIS without any Products yet.
tim@906: 
tim@906: To prevent needless Configuration-Work it is useful way to clone an Artifact 
tim@906: which handle the same Kind of work as the new FIS.
tim@906: 
tim@906: \subsubsection{Adding removing Products to the specific Artifact}
tim@906: Now it is Time to configure the different Products which the FIS should be able 
tim@906: to provide.
tim@906: To do this it is necessary to Copy the XML-Fragments of the products into the
tim@906: XML-Element <products> of the previously integrated Artifact.
tim@906: \begin{lstlisting}
tim@906: <artifact name='fis\_NEWFISNAME'>
tim@906:      <products>
tim@906:          <product name= "timeSeries">
tim@906:               <artifact-factory name="timeSeries" 
tim@906:                                 description="Artiefactfactory for Instantiating the Artifact for TimeSeries on TimeSeriesPoints"  
tim@906:                                 ttl="300000" 
tim@906:                                 artifact="de.intevation.gnv.timeseries.TimeSeriesArtifact">
tim@906:                   de.intevation.gnv.artifacts.GNVArtifactFactory
tim@906:               </artifact-factory>
tim@906:               <parameters>
tim@906:                   <parameter name="sourceid" 
tim@906:                              value="VALUEOFSOURCEID"/>
tim@906:                   <parameter name="fisname" 
tim@906:                              value="fis\_NEWFISNAME"/>
tim@906:               </parameters>
tim@906:           </product>
tim@906:           <product name= "verticalProfile">
tim@906:               <artifact-factory name="verticalProfile" 
tim@906:                                 description="Artiefactfactory for Instantiating the Artifact for Verticalprofiles on TimeSeriesPoints"  
tim@906:                                 ttl="300000" 
tim@906:                                 artifact="de.intevation.gnv.profile.vertical.VerticalProfileArtifact">
tim@906:                   de.intevation.gnv.artifacts.GNVArtifactFactory
tim@906:               </artifact-factory>
tim@906:               <parameters>
tim@906:                   <parameter name="sourceid" 
tim@906:                              value="VALUEOFSOURCEID"/>
tim@906:                   <parameter name="fisname" 
tim@906:                              value="fis\_NEWFISNAME"/>
tim@906:               </parameters>
tim@906:           </product>
tim@906:      </products>
tim@906: </artifact>
tim@906: \end{lstlisting}
tim@906: 
tim@906: In this XML Fragment you have to replace the placeholders NEWFISNAME as before 
tim@906: and VALUEOFSOURCEID with the value for the new FIS as defined in the Table 
tim@906: MEDIAN.SOURCEINFO.
tim@906: 
tim@906: \subsubsection{Putting SourceID to specific Artifact}
tim@906: \subsection{Adding a new Product}
tim@906: To add a new Product to the System it is necessary that the required 
tim@906: Artifactrepresentation is Implemented in the SourceCode.
tim@906: Without doing that step it is not possible to create a new Product.
tim@906: 
tim@906: All Products are configured in separate Files that will be included into the 
tim@906: Mainconfiguration using Xlink-references.
tim@906: 
tim@906: First Step is to create a new File in the Folder products and there in the 
tim@906: subfolder where the Product belongs to (timeseries,verticalprofile,
tim@906: horizontalprofile,horizontalcrosssection,layer,...)
tim@906: 
tim@906: Then you have tor reference this File in the File /conf/conf.xml in the Section 
tim@906: /artifacts using the following XML-Fragment.
tim@906: 
tim@906: \begin{lstlisting}
tim@906: <artifact name="timeSeries" 
tim@906:           xmlns:xlink="http://www.w3.org/1999/xlink" 
tim@906:           xlink:href="${artifacts.config.dir}/products/PATHTOFILE" /> 
tim@906: \end{lstlisting}
tim@906: 
tim@906: The placeholder PATHTOFILE has to be replaced with the relative Path and the 
tim@906: Name of the File starting in the Folder products.  
tim@906: 
tim@906: Then it is possible to add the product to a FIS as explained in the next section.
tim@906: Please note that the defined Name of the ArtifactFactory has to match to the 
tim@906: Name of the added Products which is also designed as an Artifact.
tim@906: 
tim@906: \subsection{Adding a additional Product to a FIS}
tim@906: To add a additional Product to a FIS you only have to add the XML-Fragment which 
tim@906: represents the product to the Artifact-configuration of the FIS in Section 
tim@906: /artifacts/artifact/products.
tim@906: 
tim@906: \begin{lstlisting}
tim@906:  <product name= "timeSeries">
tim@906:      <artifact-factory name="timeSeries" 
tim@906:                        description="Artiefactfactory for Instantiating the Artifact for TimeSeries on TimeSeriesPoints"  
tim@906:                        ttl="300000" 
tim@906:                        artifact="de.intevation.gnv.timeseries.TimeSeriesArtifact">
tim@906:           de.intevation.gnv.artifacts.GNVArtifactFactory
tim@906:      </artifact-factory>
tim@906:      <parameters>
tim@906:          <parameter name="sourceid" 
tim@906:                     value="VALUEOFSOURCEID"/>
tim@906:          <parameter name="fisname" 
tim@906:                     value="fis\_NEWFISNAME"/>
tim@906:      </parameters>
tim@906:  </product>
tim@906:  \end{lstlisting}
tim@906: 
tim@906: Please note that you have to replace the Placeholders as explained above.
tim@906: 




