1*b1cdbd2cSJim Jagielski#**************************************************************
2*b1cdbd2cSJim Jagielski#
3*b1cdbd2cSJim Jagielski#  Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski#  or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski#  distributed with this work for additional information
6*b1cdbd2cSJim Jagielski#  regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski#  to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski#  "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski#  with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski#
11*b1cdbd2cSJim Jagielski#    http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski#
13*b1cdbd2cSJim Jagielski#  Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski#  software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski#  KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski#  specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski#  under the License.
19*b1cdbd2cSJim Jagielski#
20*b1cdbd2cSJim Jagielski#**************************************************************
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielskipackage installer::windows::java;
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielskiuse installer::exiter;
27*b1cdbd2cSJim Jagielskiuse installer::files;
28*b1cdbd2cSJim Jagielskiuse installer::globals;
29*b1cdbd2cSJim Jagielskiuse installer::windows::idtglobal;
30*b1cdbd2cSJim Jagielski
31*b1cdbd2cSJim Jagielski####################################################################################
32*b1cdbd2cSJim Jagielski# Writing content into RegLocat.idt and AppSearc.idt to find Java on system
33*b1cdbd2cSJim Jagielski####################################################################################
34*b1cdbd2cSJim Jagielski
35*b1cdbd2cSJim Jagielskisub update_java_tables
36*b1cdbd2cSJim Jagielski{
37*b1cdbd2cSJim Jagielski	my ($basedir, $allvariables) = @_;
38*b1cdbd2cSJim Jagielski
39*b1cdbd2cSJim Jagielski	my $reglocatfile = "";
40*b1cdbd2cSJim Jagielski	my $appsearchfile = "";
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski	my $reglocatfilename = $basedir . $installer::globals::separator . "RegLocat.idt";
43*b1cdbd2cSJim Jagielski	my $appsearchfilename = $basedir . $installer::globals::separator . "AppSearc.idt";
44*b1cdbd2cSJim Jagielski	my $signaturefilename = $basedir . $installer::globals::separator . "Signatur.idt";
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski	if ( -f $reglocatfilename )
47*b1cdbd2cSJim Jagielski	{
48*b1cdbd2cSJim Jagielski		$reglocatfile = installer::files::read_file($reglocatfilename);
49*b1cdbd2cSJim Jagielski	}
50*b1cdbd2cSJim Jagielski	else
51*b1cdbd2cSJim Jagielski	{
52*b1cdbd2cSJim Jagielski		my @reglocattable = ();
53*b1cdbd2cSJim Jagielski		$reglocatfile = \@reglocattable;
54*b1cdbd2cSJim Jagielski		installer::windows::idtglobal::write_idt_header($reglocatfile, "reglocat");
55*b1cdbd2cSJim Jagielski	}
56*b1cdbd2cSJim Jagielski
57*b1cdbd2cSJim Jagielski	if ( -f $appsearchfilename )
58*b1cdbd2cSJim Jagielski	{
59*b1cdbd2cSJim Jagielski		$appsearchfile = installer::files::read_file($appsearchfilename);
60*b1cdbd2cSJim Jagielski	}
61*b1cdbd2cSJim Jagielski	else
62*b1cdbd2cSJim Jagielski	{
63*b1cdbd2cSJim Jagielski		my @appsearchtable = ();
64*b1cdbd2cSJim Jagielski		$appsearchfile = \@appsearchtable;
65*b1cdbd2cSJim Jagielski		installer::windows::idtglobal::write_idt_header($appsearchfile, "appsearch");
66*b1cdbd2cSJim Jagielski	}
67*b1cdbd2cSJim Jagielski
68*b1cdbd2cSJim Jagielski	if ( -f $signaturefilename )
69*b1cdbd2cSJim Jagielski	{
70*b1cdbd2cSJim Jagielski		$signaturefile = installer::files::read_file($signaturefilename);
71*b1cdbd2cSJim Jagielski	}
72*b1cdbd2cSJim Jagielski	else
73*b1cdbd2cSJim Jagielski	{
74*b1cdbd2cSJim Jagielski		my @signaturetable = ();
75*b1cdbd2cSJim Jagielski		$signaturefile = \@signaturetable;
76*b1cdbd2cSJim Jagielski		installer::windows::idtglobal::write_idt_header($signaturefile, "signatur");
77*b1cdbd2cSJim Jagielski	}
78*b1cdbd2cSJim Jagielski
79*b1cdbd2cSJim Jagielski	# Writing content into this tables
80*b1cdbd2cSJim Jagielski	# Java version is saved in scp project
81*b1cdbd2cSJim Jagielski	# $installer::globals::javafile was defined in installer::windows::idtglobal::add_childprojects
82*b1cdbd2cSJim Jagielski
83*b1cdbd2cSJim Jagielski	if ( ! $installer::globals::javafile->{'Javaversion'} ) { installer::exiter::exit_program("ERROR: \"Javaversion\" has to be defined in $installer::globals::javafile->{'gid'} in scp project!", "update_java_tables"); }
84*b1cdbd2cSJim Jagielski
85*b1cdbd2cSJim Jagielski	my $javastring = $installer::globals::javafile->{'Javaversion'};
86*b1cdbd2cSJim Jagielski
87*b1cdbd2cSJim Jagielski	my $signature = "JavaReg";
88*b1cdbd2cSJim Jagielski	my $rootvalue = "2";
89*b1cdbd2cSJim Jagielski	my $key = "Software\\JavaSoft\\Java Runtime Environment\\" . $javastring;
90*b1cdbd2cSJim Jagielski	my $name = "JavaHome";
91*b1cdbd2cSJim Jagielski	my $type = 2;
92*b1cdbd2cSJim Jagielski	my $property = "JAVAPATH";
93*b1cdbd2cSJim Jagielski
94*b1cdbd2cSJim Jagielski	my $oneline = $signature . "\t" . $rootvalue . "\t" . $key . "\t" . $name . "\t" . $type . "\n";
95*b1cdbd2cSJim Jagielski	push(@{$reglocatfile}, $oneline);
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski	$oneline = $property . "\t" . $signature . "\n";
98*b1cdbd2cSJim Jagielski	push(@{$appsearchfile}, $oneline);
99*b1cdbd2cSJim Jagielski
100*b1cdbd2cSJim Jagielski	# Saving the files
101*b1cdbd2cSJim Jagielski
102*b1cdbd2cSJim Jagielski	installer::files::save_file($reglocatfilename ,$reglocatfile);
103*b1cdbd2cSJim Jagielski	my $infoline = "Updated idt file for Java: $reglocatfilename\n";
104*b1cdbd2cSJim Jagielski	$installer::logger::Lang->print($infoline);
105*b1cdbd2cSJim Jagielski
106*b1cdbd2cSJim Jagielski	installer::files::save_file($appsearchfilename ,$appsearchfile);
107*b1cdbd2cSJim Jagielski	$infoline = "Updated idt file for Java: $appsearchfilename\n";
108*b1cdbd2cSJim Jagielski	$installer::logger::Lang->print($infoline);
109*b1cdbd2cSJim Jagielski
110*b1cdbd2cSJim Jagielski	installer::files::save_file($signaturefilename ,$signaturefile);
111*b1cdbd2cSJim Jagielski	$infoline = "Updated idt file: $signaturefilename\n";
112*b1cdbd2cSJim Jagielski	$installer::logger::Lang->print($infoline);
113*b1cdbd2cSJim Jagielski
114*b1cdbd2cSJim Jagielski}
115*b1cdbd2cSJim Jagielski
116*b1cdbd2cSJim Jagielski1;
117