Installation"

From Documentation
m (correct highlight (via JWB))
 
(73 intermediate revisions by 14 users not shown)
Line 1: Line 1:
 
{{ZKStudioEssentialsPageHeader}}
 
{{ZKStudioEssentialsPageHeader}}
== Support Version (Eclispe, ZK) ==
 
Eclipse 3.5, Eclipse 3.6, RAD, MyEclipse. Packaged with ZK 5.0.5
 
  
== Prerequisite ==
 
There are three pieces of software that you need to download and install in order to use ZK Studio.
 
  
=== Java SE Development Kit (JDK) ===
+
= Prerequisite =
Java version 5 or 6 is required in order to run Eclipse, you can download either of them by following the links below:
+
There are some software you need to install before installing ZK Studio.
  
JDK 6:
+
== Java SE Development Kit (JDK) ==
:[http://java.sun.com/javase/downloads/index.jsp http://java.sun.com/javase/downloads/index.jsp]
+
Java version 6 or later is required in order to run Eclipse with ZK Studio, you can download it from [http://www.oracle.com/technetwork/java/javase/downloads Oracle official site].
  
JDK 5:
+
== Eclipse IDE for Java EE Developers ==
:[http://java.sun.com/javase/downloads/index_jdk5.jsp http://java.sun.com/javase/downloads/index_jdk5.jsp]
+
ZK Studio is an Eclipse Plug-in, therefore you must install Eclipse. We recommend the '''Eclipse IDE for Java EE Developers''' package.
 
 
select which "'''''Java SE Development Kit (JDK)'''''" you want to download, please do '''not''' select the JRE.
 
 
 
 
 
Installation Instructions:
 
 
 
:[http://java.sun.com/javase/6/webnotes/install/index.html http://java.sun.com/javase/6/webnotes/install/index.html]
 
 
 
:[http://java.sun.com/j2se/1.5.0/install.html http://java.sun.com/j2se/1.5.0/install.html]
 
 
 
<br/>
 
 
 
=== Eclipse IDE for Java EE Developers ===
 
ZK-Studio is an Eclipse Plug-in, therefore you must install Eclipse. We recommend using the '''''''Eclipse IDE for Java EE Developers''''''' package, currently [http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/heliossr1 v3.6 (Helios)], and [http://www.eclipse.org/downloads/packages/release/galileo/sr2 v3.5(Galileo)]
 
  
 
'''Install:'''  
 
'''Install:'''  
  
Extract "eclipse" from the downloaded zip file to a location of your choice. To make sure Eclipse can run on your system, execute '''eclipse.exe''' (in windows) or '''eclipse''' (in unix ). You can locate these files in your extracted eclipse folder.
+
Installation is done simply by extracting the downloaded zip file to a proper local folder. To make sure Eclipse can run on your system, execute <code>eclipse.exe</code> (in Windows) or <code>eclipse</code> (in Unix or Linux). You can locate these files in your extracted eclipse folder.
  
We recommend setting Eclipse's default JRE to JDK, please refer to the Setup/Preferences section in [http://www.eclipse.org/webtools/community/tutorials/BuildJ2EEWebApp/BuildJ2EEWebApp.html '''''WTP Tutorials – Building and Running a Web Application'''''].
 
  
 
'''Tips:'''
 
'''Tips:'''
:1. We recommend modifying some parameters in the configuration file eclipse.ini which will result in performance gain, please refer [http://www.eclipsezone.com/eclipse/forums/t61618.html here] and [http://blog.xam.dk/archives/68-Eclipse-and-memory-settings.html here].
+
# We recommend modifying some parameters in the configuration file <code>eclipse.ini</code> which will result in performance gain, please refer [http://www.eclipsezone.com/eclipse/forums/t61618.html here] and [http://blog.xam.dk/archives/68-Eclipse-and-memory-settings.html here].
 
+
# We also recommend setting Eclipse's default JRE to JDK, please refer to the "Setup/Preferences" section in [http://www.eclipse.org/webtools/community/tutorials/BuildJ2EEWebApp/BuildJ2EEWebApp.html WTP Tutorials – Building and Running a Web Application].
:2. We also recommend using the Java Development Kit (JDK) as the default JRE for Eclipse IDE, please follow [[Setting_Default_JRE_In_Eclipse#Setup_Default_JRE_as_JDK | these instructions]] to make the JDK the default JRE.
+
<!--
 +
# We also recommend using the Java Development Kit (JDK) as the default JRE for Eclipse IDE, please follow [[Setting_Default_JRE_In_Eclipse#Setup_Default_JRE_as_JDK | these instructions]] to make the JDK the default JRE.
 +
-->
  
 
+
== Application Servers ==
<br/>
+
Before developing web applications in Java using ZK Framework, you need to install an application server. Apache Tomcat is one of the most popular web containers. Tomcat versions 6 and 7 are supported and can be downloaded at [http://tomcat.apache.org Apache Tomcat].
 
 
=== Application Servers ===
 
Before developing web applications in Java using the ZK Ajax Framework, you need to install an application server. Apache Tomcat is one of the most popular Web containers. Tomcat versions 5.5 and 6 are supported and can be downloaded at the following link [http://tomcat.apache.org/ http://tomcat.apache.org/].
 
  
 
'''Install:'''
 
'''Install:'''
 
+
: Download the zip file of Tomcat distribution and extract it to a proper location (with no illegal characters or space in the path). Tomcat requires configuration before it can be used with Eclipse, this process is described in the following link [[ZK_Studio_Essentials/Begin_Your_First_ZK_Project/Create_a_New_ZK_Project#Running_the_ZK_Project | Running the ZK Project]].
Download the zip file of Tomcat distribution and extract it to a proper location (with no illegal characters or space in the path). Tomcat requires configuration before it can be used with Eclipse, this process is described in the following link [[ZK_Studio_Essentials/Begin_Your_First_ZK_Project/Create_a_New_ZK_Project#Running_the_ZUL_File | Running the ZUL File]].
 
  
 
'''Tips:'''
 
'''Tips:'''
 +
: If you not only want to develop web applications, but also need to deploy them on Apache Tomcat, links to the official installation instructions for directly running Apache Tomcat in your environment are provided below:
 +
:* Tomcat 7: http://tomcat.apache.org/tomcat-7.0-doc/setup.html
 +
:* Tomcat 6: http://tomcat.apache.org/tomcat-6.0-doc/setup.html
  
If you not only want to develop Web Applications, but also need to deploy them on Apache Tomcat, links to the official installation instructions for directly running Apache Tomcat in your environment are provided below:
+
= Install ZK Studio =
 +
ZK Studio can be installed in several ways. We recommend to install through Marketplace.
  
v6.x:
 
  
:[http://tomcat.apache.org/tomcat-6.0-doc/setup.html http://tomcat.apache.org/tomcat-6.0-doc/setup.html]
+
== Marketplace (Since Eclipse 3.6) ==
 +
Marketplace is the easiest way to install plugins. Go to menu '''[Help] > [Eclipse Markpetplace]''' and search '''"zk studio"''' you'll find '''ZK Studio''' to install.
  
v5.5:
+
[[Image:Eclipse36_marketplace.png | center | 500px]]
  
:[http://tomcat.apache.org/tomcat-5.5-doc/setup.html http://tomcat.apache.org/tomcat-5.5-doc/setup.html]
+
== Update Site==
 +
<!--
 +
* The URL of ZK Studio for Eclipse 3.6: http://studio.zkoss.org/resource/plugins/eclipse_3_6
 +
* The URL of ZK Studio for Eclipse 3.5: http://studio.zkoss.org/resource/plugins/eclipse_3_5
 +
-->
  
== Installation Guide ==
+
# Open Eclipse, click the '''[Help]''' menu and select '''[Install New Software...]'''.  A install window will popup, and then click '''Add'''
 +
#: [[Image:zkstudio_installation_35_1.png| center | 600px]]
 +
#: <br/>
 +
# Name the site as '''"ZK Studio"''' and copy corresponding update site's URL into '''Location''' field and click '''OK'''.
 +
#: The URL of ZK Studio for Eclipse 4.2 and later: http://studio.zkoss.org/resource/plugins/eclipse_4_2
 +
#: The URL of ZK Studio for Eclipse 3.7: http://studio.zkoss.org/resource/plugins/eclipse_3_7
 +
#: [[Image:zkstudio_installation_35_2.png | center | 500px]]
 +
#: <br/>
 +
# Expand the update entry of ZK Studio, check '''ZK Studio''' and then click '''Next'''
 +
#: [[Image:zkstudio_installation_35_3.png| center | 600px]]
 +
#: The Eclipse Installation System will now attempt to retrieve information from the update site. This will take some time depending on your eclipse environment, please be patient.
 +
# Click '''Next''' on the pop-up install wizard dialog.
 +
#: [[Image:zkstudio_installation_35_4.png| center | 600px]]
 +
#: <br/>
 +
#: Check '''"I accept the terms of the license agrement"''' and click '''Finish''' on the wizard dialog.
 +
#: [[Image:zkstudio_installation_35_4_licenses.png | center | 600px]]
 +
#: <br/>
 +
#: The Installation process will now begin.
 +
#: [[Image:zkstudio_installation_35_5.png | center | 600px]]
 +
#: <br/>
 +
#: If there is a pop-up dialog with unsigned content warning, please click '''OK''' to continue.
 +
#: [[Image:zkstudio_installation_35_5_warning.png | center | 500px]]
 +
#: <br/>
 +
# Once the installation is complete, please restart Eclipse as prompted.
 +
#: [[Image:zkstudio_installation_35_6.png | center | 500px]]
  
ZK Studio can be installed by using either the online installation with the update site URL, or by downloading the offline installation zip file provided [http://www.zkoss.org/download/zkstudio.dsp here] and following the Offline Installation Guide.
+
== Offline Installation==
 +
# Download the offline installation zip file from [http://www.zkoss.org/download/zkstudio ZK Studio download page].
 +
# The step is the same as step 1 we do for [[# Update Site| Update Site]]. Open Eclipse, click '''[Help]''' menu and select '''[Install New Software...]'''. An install window will popup, click '''Add'''
 +
# Click '''Archive...''' to open a file explorer. Then, use file explorer to choose downloaded file and click "OK" to install.
 +
#: [[Image:zkstudio_installation_35_manual_2.png | center | 500px]]
  
=== Online Installation on Eclipse 3.6 ===
+
== Activate ZK Studio ==
TODO: much like for Eclipse 3.5. But have to finish this section after newer ZK studio package is ready, and update server environment is ready.
+
'''Removed''' since ZK Studio 2.0.4.
 
 
=== Offline Installation on Eclipse 3.6 ===
 
TODO: much like for Eclipse 3.5. But have to finish this section after newer ZK studio package is ready, and update server environment is ready.
 
 
 
=== Online Installation on Eclipse 3.5 ===
 
 
 
:1. Open Eclipse, click the [Help] menu and select [Install New Software...].  A install window popup and then click [Add].
 
 
 
[[Image:zkstudio_installation_35_1.JPG]]
 
 
 
:2. Name the site as zkstudio and copy "http://studioupdate.zkoss.org/studio/update" into "Location" and click [OK]
 
 
 
[[Image:zkstudio_installation_35_2.JPG]]
 
  
:3. Unfold the ZK Studio Update entry, check ZK Studio and then click [Next]
+
ZK Studio 2.0.4 and later doesn't require activation.
  
[[Image:zkstudio_installation_35_3.JPG]]
+
= Visual Editor =
 +
Visual Editor is a deprecated feature, it is no longer included in ZK Studio. There are several alternatives:
  
:The Eclipse Installation System will now attempt to retrieve information from the update site. This will take some time depending on your eclipse environment, please be patient.
+
*  install [https://marketplace.eclipse.org/content/run-jetty-run run jetty run plugin] for eclipse
 +
* [https://www.eclipse.org/jetty/documentation/9.3.x/jetty-maven-plugin.html jetty Maven plugin]
  
 +
Add the plugin below in a pom.xml.
 +
<source lang='xml'>
 +
<build>
 +
<plugins>
 +
<plugin>
 +
<groupId>org.eclipse.jetty</groupId>
 +
<artifactId>jetty-maven-plugin</artifactId>
 +
<version>9.4.8.v20171121</version>
 +
<configuration>
 +
<webAppConfig>
 +
<contextPath>/${project.artifactId}</contextPath>
 +
<allowDuplicateFragmentNames>true</allowDuplicateFragmentNames>
 +
</webAppConfig>
 +
<scanIntervalSeconds>5</scanIntervalSeconds>
 +
</configuration>
 +
</plugin>
 +
</plugins>
 +
</build>
 +
</source>
  
 +
Run the goal with
 +
mvn jetty:run
  
:4. Click [Finish] on the pop-up Install Wizard UI.
+
* [http://akhikhl.github.io/gretty-doc/Getting-started.html Gradle gretty]
 +
* [https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-runner jetty-runner]
 +
* [https://github.com/jsimone/webapp-runner webapp-runner (Tomcat) ]
 +
  
[[Image:zkstudio_installation_35_4.JPG]]
+
All jetty plugins (or runner) above can quickly start your project in an IDE in seconds without packaging a project as WAR. When you change a zul or a Java class, you don't need to restart the jetty server. It will hot-reload the newly-compiled class. So that you can view the result with your browser, just like Visual Editor can do.
  
:The Installation process will now begin.
 
  
[[Image:zkstudio_installation_35_5.JPG]]
+
<!--
 +
Since 2.0.0, Visual Editor is not part of ZK Studio. It now available as a separate Eclipse plugin to install. Please download it from [http://www.zkoss.org/download/zkstudio download page] and install it as a Eclipse plugin. The installation procedure is same as ZK Studio offline installation described in the above section.
 +
-->
  
:5. Once the installation is complete, please restart Eclipse as prompted.
+
= Troubleshooting =
  
[[Image:zkstudio_installation_35_6.JPG]]
+
== Can't activate in Spring Tool Suite ==
 +
Spring tool suite 2.6 and later may ask that encrypt/decrypt library must be signed by trusted source. So with STS, in order to activate ZK Studio you need to modify java.security file to enable the license management of ZK Studio, i.e. the Bouncy Castle Cryptography Provider.
  
=== Offline Installation on Eclipse 3.5 ===
+
First you need to check your jvm version. For Ubuntu/Debian users, run
 +
<source lang="text" >
 +
$ update-java-alternatives –l
 +
</source>
 +
You should be seeing:
 +
<source lang="text" >
 +
java-6-sun 63 /usr/lib/jvm/java-6-sun
 +
</source>
 +
To get your Bouncy Castle running correctly:
 +
*1.Search for java.security in /path_to_your_jvm/jre/lib/security
 +
*2.Should look like:
 +
<source lang="text" >
 +
#......
 +
# (some info)
 +
#......
 +
security.provider.1=sun.security.provider.Sun
 +
security.provider.2=sun.security.rsa.SunRsaSign
 +
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
 +
 +
security.provider.8=sun.security.smartcardio.SunPCSC
 +
</source>
 +
*3.Add security.provider.X=org.bouncycastle.jce.provider.BouncyCastleProvider as the last provider. In the sample above you will add
 +
<source lang="text" >
 +
security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
 +
</source>
 +
*4. Visit Bouncy Castle (http://www.bouncycastle.org/latest_releases.html) and search for bcprov-jdkxx-xxx.jar according to your JVM version. Add it to /path_to_your_jvm/jre/lib/ext
 +
*5.Remove any other undesired bcprov-jdkxx-xxx.jar from your class path.
  
:1. Download the offline installation zip file [http://www.zkoss.org/download/zkstudio.dsp here]
+
After you have successfully run the Bouncy Castle Cryptography Provider you should be able to activate ZK Studio. If there is still an issue please contact info@zkoss.org for further assistance.
  
:2. The following steps is much like online installation. But click '''Archive''' in step2. Then use file explorer to choose downloaded file in previous step.
+
== WTP not installed ==
 
+
If you get the following error message while installing ZK Studio, that means you are not using Eclipse for JavaEE Developers, and you need to install [http://www.eclipse.org/webtools Eclipse WTP] plug-in manually or download Eclipse for JavaEE Developers.
[[Image:zkstudio_installation_35_manual_2.JPG]]
 
 
 
== Activate ZK Studio ==
 
 
 
In Eclipse's menubar, please choose '''File'''/'''Activate ZK Studio'''. A dialog will show:
 
 
 
[[Image:Studio_activation_dialog.png]]
 
 
 
Please input your account and password in [http://www.zkoss.org/forum/ ZK Forum] to activate ZK Studio.
 
 
 
{{ZKStudioEssentialsPageFooter}}
 
 
 
 
 
== Trouble Shooting ==
 
 
 
* if you get the error message when installing the plug-in , that means you are not using Eclipse for J2EE user , and you need to install [[http://www.eclipse.org/webtools/|Eclipse WTP]] plug-in manually or download Eclipse for J2EE.
 
  
 
<pre>
 
<pre>
Line 134: Line 174:
 
To: bundle org.zkoss.eclipse.zks 0.0.0
 
To: bundle org.zkoss.eclipse.zks 0.0.0
 
</pre>
 
</pre>
 +
 +
==Still have problem?==
 +
Please contact [mailto:info@zkoss.org info@zkoss.org] if there's any issue after referencing the above note.
 +
 +
 +
 +
{{ZKStudioEssentialsPageFooter}}

Latest revision as of 13:23, 19 January 2022

Installation




Prerequisite

There are some software you need to install before installing ZK Studio.

Java SE Development Kit (JDK)

Java version 6 or later is required in order to run Eclipse with ZK Studio, you can download it from Oracle official site.

Eclipse IDE for Java EE Developers

ZK Studio is an Eclipse Plug-in, therefore you must install Eclipse. We recommend the Eclipse IDE for Java EE Developers package.

Install:

Installation is done simply by extracting the downloaded zip file to a proper local folder. To make sure Eclipse can run on your system, execute eclipse.exe (in Windows) or eclipse (in Unix or Linux). You can locate these files in your extracted eclipse folder.


Tips:

  1. We recommend modifying some parameters in the configuration file eclipse.ini which will result in performance gain, please refer here and here.
  2. We also recommend setting Eclipse's default JRE to JDK, please refer to the "Setup/Preferences" section in WTP Tutorials – Building and Running a Web Application.

Application Servers

Before developing web applications in Java using ZK Framework, you need to install an application server. Apache Tomcat is one of the most popular web containers. Tomcat versions 6 and 7 are supported and can be downloaded at Apache Tomcat.

Install:

Download the zip file of Tomcat distribution and extract it to a proper location (with no illegal characters or space in the path). Tomcat requires configuration before it can be used with Eclipse, this process is described in the following link Running the ZK Project.

Tips:

If you not only want to develop web applications, but also need to deploy them on Apache Tomcat, links to the official installation instructions for directly running Apache Tomcat in your environment are provided below:

Install ZK Studio

ZK Studio can be installed in several ways. We recommend to install through Marketplace.


Marketplace (Since Eclipse 3.6)

Marketplace is the easiest way to install plugins. Go to menu [Help] > [Eclipse Markpetplace] and search "zk studio" you'll find ZK Studio to install.

Eclipse36 marketplace.png

Update Site

  1. Open Eclipse, click the [Help] menu and select [Install New Software...]. A install window will popup, and then click Add
    Zkstudio installation 35 1.png

  2. Name the site as "ZK Studio" and copy corresponding update site's URL into Location field and click OK.
    The URL of ZK Studio for Eclipse 4.2 and later: http://studio.zkoss.org/resource/plugins/eclipse_4_2
    The URL of ZK Studio for Eclipse 3.7: http://studio.zkoss.org/resource/plugins/eclipse_3_7
    Zkstudio installation 35 2.png

  3. Expand the update entry of ZK Studio, check ZK Studio and then click Next
    Zkstudio installation 35 3.png
    The Eclipse Installation System will now attempt to retrieve information from the update site. This will take some time depending on your eclipse environment, please be patient.
  4. Click Next on the pop-up install wizard dialog.
    Zkstudio installation 35 4.png

    Check "I accept the terms of the license agrement" and click Finish on the wizard dialog.
    Zkstudio installation 35 4 licenses.png

    The Installation process will now begin.
    Zkstudio installation 35 5.png

    If there is a pop-up dialog with unsigned content warning, please click OK to continue.
    Zkstudio installation 35 5 warning.png

  5. Once the installation is complete, please restart Eclipse as prompted.
    Zkstudio installation 35 6.png

Offline Installation

  1. Download the offline installation zip file from ZK Studio download page.
  2. The step is the same as step 1 we do for Update Site. Open Eclipse, click [Help] menu and select [Install New Software...]. An install window will popup, click Add
  3. Click Archive... to open a file explorer. Then, use file explorer to choose downloaded file and click "OK" to install.
    Zkstudio installation 35 manual 2.png

Activate ZK Studio

Removed since ZK Studio 2.0.4.

ZK Studio 2.0.4 and later doesn't require activation.

Visual Editor

Visual Editor is a deprecated feature, it is no longer included in ZK Studio. There are several alternatives:

Add the plugin below in a pom.xml.

	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-maven-plugin</artifactId>
				<version>9.4.8.v20171121</version>
				<configuration>
					<webAppConfig>
						<contextPath>/${project.artifactId}</contextPath>
						<allowDuplicateFragmentNames>true</allowDuplicateFragmentNames>
					</webAppConfig>
					<scanIntervalSeconds>5</scanIntervalSeconds>
				</configuration>
			</plugin>
		</plugins>
	</build>

Run the goal with

mvn jetty:run


All jetty plugins (or runner) above can quickly start your project in an IDE in seconds without packaging a project as WAR. When you change a zul or a Java class, you don't need to restart the jetty server. It will hot-reload the newly-compiled class. So that you can view the result with your browser, just like Visual Editor can do.


Troubleshooting

Can't activate in Spring Tool Suite

Spring tool suite 2.6 and later may ask that encrypt/decrypt library must be signed by trusted source. So with STS, in order to activate ZK Studio you need to modify java.security file to enable the license management of ZK Studio, i.e. the Bouncy Castle Cryptography Provider.

First you need to check your jvm version. For Ubuntu/Debian users, run

$ update-java-alternatives –l

You should be seeing:

java-6-sun 63 /usr/lib/jvm/java-6-sun

To get your Bouncy Castle running correctly:

  • 1.Search for java.security in /path_to_your_jvm/jre/lib/security
  • 2.Should look like:
#......
# (some info)
#......
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
…
security.provider.8=sun.security.smartcardio.SunPCSC
  • 3.Add security.provider.X=org.bouncycastle.jce.provider.BouncyCastleProvider as the last provider. In the sample above you will add
security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
  • 4. Visit Bouncy Castle (http://www.bouncycastle.org/latest_releases.html) and search for bcprov-jdkxx-xxx.jar according to your JVM version. Add it to /path_to_your_jvm/jre/lib/ext
  • 5.Remove any other undesired bcprov-jdkxx-xxx.jar from your class path.

After you have successfully run the Bouncy Castle Cryptography Provider you should be able to activate ZK Studio. If there is still an issue please contact info@zkoss.org for further assistance.

WTP not installed

If you get the following error message while installing ZK Studio, that means you are not using Eclipse for JavaEE Developers, and you need to install Eclipse WTP plug-in manually or download Eclipse for JavaEE Developers.

Cannot complete the install because one or more required items could not be found.
Software currently installed: ZK Studio Eclipse Plugins 0.9.6.v200912041237 (org.zkoss.eclipse.feature.group 0.9.6.v200912041237)
Missing requirement: ZK Studio Storage Plug-in 0.9.6.v200912041237 (org.zkoss.eclipse.zks 0.9.6.v200912041237) requires 'bundle org.eclipse.wst.common.project.facet.ui 0.0.0' but it could not be found
Cannot satisfy dependency:  From: ZK Studio Eclipse Plugins 0.9.6.v200912041237 (org.zkoss.eclipse.feature.group 0.9.6.v200912041237)
To: org.zkoss.eclipse.ve [0.9.6.v200912041237]
Cannot satisfy dependency:  From: ZK Studio Visual Editor Plug-in 0.9.6.v200912041237 (org.zkoss.eclipse.ve 0.9.6.v200912041237)
To: bundle org.zkoss.eclipse.zks 0.0.0

Still have problem?

Please contact info@zkoss.org if there's any issue after referencing the above note.




Last Update : 2022/01/19

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.