JAL-1400 default JalviewLite build is signed applet with sandbox permissions
[jalview.git] / build.xml
index e7f05bc..0849463 100755 (executable)
--- a/build.xml
+++ b/build.xml
                <!-- J2SE version needed for webstart launch -->
                <property name="j2sev" value="1.6+"/>
 
-    <!-- Permissions for running Java applets and applications. Defaults are those suitable for deploying jalview webstart/jalviewLite at www.jalview.org -->
+    <!-- Permissions for running Java applets and applications. -->
+    <!-- Defaults are those suitable for deploying jalview webstart www.jalview.org -->
     <property name="application.codebase" value="*.jalview.org"/>
+    <!-- and allowing the applet to be deployed from any URL -->
     <property name="applet.codebase" value="*"/>
     <property name="applet.caller-codebase" value="${applet.codebase}"/>
 
                        <manifest>
                                <attribute name="Main-Class" value="jalview.bin.JalviewLite" />
                                <attribute name="Application-Name" value="JalviewLite"/>
-                               <attribute name="Permissions" value="all-permissions" />
                                <attribute name="Codebase" value="${applet.codebase}"/>
                        </manifest>
                        <fileset dir="${outputDir}">
                        </fileset>
          </copy>
          <presetdef name="applet.jar">
+      <!-- build a signed applet with 'all-permissions' - 
+                         Needs 'param name="permissions' value="all-permissions"' in applet tag
+                         JalviewLite+JmolApplet linked sequence/structure fails
+                         Mixed code warnings are raised
+                         -->
            <jar update="true" index="true">
                <manifest>
                <attribute name="Application-Name" value="JalviewLite"/>
                <attribute name="Codebase" value="${applet.codebase}"/>
                <attribute name="Caller-Allowable-Codebase" value="${applet.caller-codebase}"/>
                <attribute name="Application-Library-Allowable-Codebase" value="${applet.codebase}"/>
-               <!--
-               <attribute name="Application-Library-Allowable-Codebase" value="${applet.codebase}"/>
-               -->
-<!--           <attribute name="Trusted-Only" value="true"/>
--->
-<!--           <attribute name="Trusted-Library" value="true"/>
+        </manifest>
+      </jar>
+    </presetdef>
+    <presetdef name="s_applet.jar">
+      <!-- build signed applet with sandbox permissions -
+                         Needs 'param name="permissions' value="sandbox"' in applet tag
+                        Preserves Pre-Java 1.7_u45 behavior once 'permissions' parameter added to applet tag 
 -->
+
+      <jar update="true" index="true" jarfile="@{jarfile}">
+        <manifest>
+          <attribute name="Application-Name" value="JalviewLite" />
+          <attribute name="Permissions" value="sandbox" />
+          <attribute name="Codebase" value="${applet.codebase}" />
+          <attribute name="Caller-Allowable-Codebase" value="${applet.caller-codebase}" />
+          <attribute name="Application-Library-Allowable-Codebase" value="${applet.codebase}" />
                </manifest>
          </jar>
          </presetdef>
          <presetdef name="applet_tl.jar">
+      <!-- build signed applet with trusted library/trusted permissions -
+                               Needs 'param name="permissions' value="all-permissions"' in applet tag
+                              j1.7_45:
+                              No mixed code warnings raised 
+                              Jmol/JalviewLite sequence/structure example doesn't link structures
+                              Raises dialog asking user to allow page to control applet via LiveConnect javascript
+                              
+                             -->
+
            <jar update="true" index="true" jarfile="@{jarfile}">
                <manifest>
                <attribute name="Application-Name" value="JalviewLite"/>
          </jar>
 
          </presetdef>
+    <presetdef name="applet_to.jar">
+      <!-- not fully test variant (yet) -->
+      <jar update="true" index="true" jarfile="@{jarfile}">
+        <manifest>
+          <attribute name="Application-Name" value="JalviewLite" />
+          <attribute name="Permissions" value="all-permissions" />
+          <attribute name="Codebase" value="${applet.codebase}" />
+          <attribute name="Trusted-Only" value="true" />
+        </manifest>
+      </jar>
+    </presetdef>
+    <!-- create differently privileged artefacts -->
          <copy file="${packageDir}/examples/${jalviewLiteJar}" tofile="${packageDir}/examples/tl_${jalviewLiteJar}"/>
          <copy file="${packageDir}/examples/${jmolJar}" tofile="${packageDir}/examples/tl_${jmolJar}"/>
-         <applet.jar jarfile="${packageDir}/examples/${jalviewLiteJar}"/>
+    <copy file="${packageDir}/examples/${jalviewLiteJar}" tofile="${packageDir}/examples/to_${jalviewLiteJar}" />
+    <copy file="${packageDir}/examples/${jmolJar}" tofile="${packageDir}/examples/to_${jmolJar}" />
+    <copy file="${packageDir}/examples/${jalviewLiteJar}" tofile="${packageDir}/examples/s_${jalviewLiteJar}" />
+    <copy file="${packageDir}/examples/${jmolJar}" tofile="${packageDir}/examples/s_${jmolJar}" />
+    <applet.jar jarfile="${packageDir}/examples/ap_${jalviewLiteJar}" />
+    <applet.jar jarfile="${packageDir}/examples/ap_${jmolJar}" />
          <applet_tl.jar jarfile="${packageDir}/examples/tl_${jalviewLiteJar}"/>
-         <applet.jar jarfile="${packageDir}/examples/${jmolJar}"/>
          <applet_tl.jar jarfile="${packageDir}/examples/tl_${jmolJar}"/>
+    <s_applet.jar jarfile="${packageDir}/examples/${jalviewLiteJar}" />
+    <s_applet.jar jarfile="${packageDir}/examples/${jmolJar}" />
+    <applet_to.jar jarfile="${packageDir}/examples/to_${jalviewLiteJar}" />
+    <applet_to.jar jarfile="${packageDir}/examples/to_${jmolJar}" />
+    <!-- todo - write examples/downloads for alternate versions of the applet -->
     <signjar storepass="${jalview.keystore.pass}" keypass="${jalview.key.pass}" keystore="${jalview.keystore}" alias="${jalview.key}" lazy="false" verbose="false">
 
       <fileset dir="${packageDir}/examples">