TeamDev Ltd. Home Page

Buy now

Buy online in few steps
Questions by email

JNIWrapper provides simplified access to native code from Java applications without using Java Native Interface (JNI.) You don’t need to create a native library to make system calls or spend time on learning the low-level ins and outs of the system architecture.

Native Function Invocation

JNIWrapper supports both stdcall and cdecl calling conventions and multiple C/C++ data types including structures, unions, and pointers. You can perform all native function calls simultaneously from different Java threads without synchronizing them. The product supports thread-safe concurrent function invocation.

High Performance

JNIWrapper is capable of handling any large amount of data involved in interactions between the Java and native code, requiring no performance tuning on your part. JNIWrapper allows you to debug native errors on the Java side, putting program execution fully under your control.

Error - /products/jni/layout/downloadWidget.xhtml: Error reading 'evaluationInfo' on type com.teamdev.site.jsf.beans.product.ProductPageHandler

An Error Occurred:

/products/jni/layout/downloadWidget.xhtml: Error reading 'evaluationInfo' on type com.teamdev.site.jsf.beans.product.ProductPageHandler

+ Stack Trace

javax.el.ELException: /products/jni/layout/downloadWidget.xhtml: Error reading 'evaluationInfo' on type com.teamdev.site.jsf.beans.product.ProductPageHandler
	at com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:48)
	at com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)
	at com.sun.facelets.compiler.UILeaf.encodeAll(UILeaf.java:149)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)
	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
	at teamdev.jsf.ai.renderView(SourceFile:49)
	at teamdev.jsf.cl.renderView(SourceFile:405)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
	at org.sevenhats.util.servlet.AbstractServletWrapper.service(AbstractServletWrapper.java:28)
	at org.sevenhats.jsf.impl.FacesServletWrapper.service(FacesServletWrapper.java:79)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
	at org.sevenhats.web.common.FilterMappingFilter$FilterChainExtension.doFilter(FilterMappingFilter.java:82)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
	at org.sevenhats.web.common.FilterMappingFilter$FilterChainExtension.doFilter(FilterMappingFilter.java:93)
	at com.teamdev.site.jsf.filter.NoCacheFilter.doFilter(NoCacheFilter.java:48)
	at org.sevenhats.web.common.FilterMappingFilter$FilterChainExtension.doFilter(FilterMappingFilter.java:93)
	at com.teamdev.site.jsf.filter.ForwardFilter.doFilter(ForwardFilter.java:55)
	at org.sevenhats.web.common.FilterMappingFilter$FilterChainExtension.doFilter(FilterMappingFilter.java:93)
	at org.sevenhats.web.transaction.TransactionFilter.doFilter(TransactionFilter.java:48)
	at org.sevenhats.web.common.FilterMappingFilter$FilterChainExtension.doFilter(FilterMappingFilter.java:93)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301)
	at org.sevenhats.web.common.FilterMappingFilter$FilterChainExtension.doFilter(FilterMappingFilter.java:93)
	at teamdev.jsf.util.ResourceFilter.doFilter(SourceFile:93)
	at org.sevenhats.web.common.FilterMappingFilter$FilterChainExtension.doFilter(FilterMappingFilter.java:93)
	at org.sevenhats.web.common.FilterMappingFilter.doFilter(FilterMappingFilter.java:60)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
	at org.sevenhats.web.common.WelcomeFileSupportFilter.doFilter(WelcomeFileSupportFilter.java:74)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
	at org.sevenhats.web.common.UrlPathMappingSupportFilter.doFilter(UrlPathMappingSupportFilter.java:60)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
	at org.sevenhats.web.impl.ScopeRegistrationFilter.doFilter(ScopeRegistrationFilter.java:56)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
	at org.sevenhats.web.common.TargetBundleAwareServlet.service(TargetBundleAwareServlet.java:79)
	at org.eclipse.equinox.http.helper.ContextInitParametersServletAdaptor.service(ContextInitParametersServletAdaptor.java:34)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:75)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:255)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285)
	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
	at org.eclipse.equinox.http.servlet.internal.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:30)
	at com.teamdev.site.jsf.filter.ForwardFilter.doFilter(ForwardFilter.java:49)
	at org.sevenhats.web.common.FilterMappingFilter$FilterChainExtension.doFilter(FilterMappingFilter.java:93)
	at org.sevenhats.web.transaction.TransactionFilter.doFilter(TransactionFilter.java:63)
	at org.sevenhats.web.common.FilterMappingFilter$FilterChainExtension.doFilter(FilterMappingFilter.java:93)
	at org.sevenhats.web.common.FilterMappingFilter.doFilter(FilterMappingFilter.java:60)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
	at org.sevenhats.web.common.WelcomeFileSupportFilter.doFilter(WelcomeFileSupportFilter.java:74)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
	at org.sevenhats.web.common.UrlPathMappingSupportFilter.doFilter(UrlPathMappingSupportFilter.java:60)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
	at org.sevenhats.web.impl.ScopeRegistrationFilter.doFilter(ScopeRegistrationFilter.java:56)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
	at org.sevenhats.web.common.TargetBundleAwareServlet.service(TargetBundleAwareServlet.java:79)
	at org.eclipse.equinox.http.helper.ContextInitParametersServletAdaptor.service(ContextInitParametersServletAdaptor.java:34)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor$FilterChainImpl.doFilter(FilterServletAdaptor.java:56)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.eclipse.equinox.http.helper.FilterServletAdaptor.service(FilterServletAdaptor.java:37)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:75)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:255)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
	at org.mortbay.jetty.Server.handle(Server.java:324)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
Caused by: java.lang.NullPointerException
	at com.teamdev.site.jsf.beans.product.ProductPageHandler.getAcceptableProductFor(ProductPageHandler.java:82)
	at com.teamdev.site.jsf.beans.product.ProductPageHandler.getEvaluationInfo(ProductPageHandler.java:54)
	at sun.reflect.GeneratedMethodAccessor109.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
	at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
	at com.sun.el.parser.AstValue.getValue(AstValue.java:117)
	at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
	at com.sun.facelets.el.ELText$ELTextVariable.writeText(ELText.java:184)
	at com.sun.facelets.el.ELText$ELTextComposite.writeText(ELText.java:108)
	at com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:45)
	... 105 more

+ Component Tree

<dn id="_teamdev_ViewRoot" locale="en_US" renderKitId="HTML_BASIC" rendered="true" transient="false" viewId="/jniwrapper/index.xhtml">
_QuipuKitValidationProcessor_
<ValidationProcessor id="teamdevValidationProcessor" rendered="false" transient="false" useDefaultClientValidationPresentationForApplication="true" useDefaultServerValidationPresentationForApplication="true"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="AUTHOR" content="TeamDev Ltd."/> <meta name="CONTENT-LANGUAGE" content="en-US,ru"/> <meta name="COPYRIGHT" content=" 2009 TeamDev Ltd."/> <meta name="CACHE-CONTROL" content="Public"/>
<ComponentRef id="j_id3" rendered="true" transient="false">
<meta name="Keywords" content="#{metaKeywords}"/>
</ComponentRef>
<ComponentRef id="j_id5" rendered="true" transient="false">
<meta name="Description" content="#{metaDescription}"/>
</ComponentRef>
<title>
#{productPage.productName} — #{propertyService.properties['company.name.full']}
</title> <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/reset.css" type="text/css" media="screen,projection"/> <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/layout.css" type="text/css" media="screen,projection"/> <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/main.css" type="text/css" media="screen,projection"/> <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/menu.css" type="text/css" media="screen,projection"/> <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/boxes.css" type="text/css" media="screen,projection"/> <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/popup.css" type="text/css" media="screen,projection"/> <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/print.css" type="text/css" media="print"/> <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/handheld.css" type="text/css" media="handheld"/> <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/edit.css" type="text/css" media="screen,projection"/>
<link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/products.css" type="text/css" media="screen,projection"/> <link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/css/product_#{productName}.css" type="text/css" media="screen,projection"/>
<script src="#{facesContext.externalContext.requestContextPath}/js/jquery/jquery-1.2.6.pack.js" type="text/javascript"/> <script src="#{facesContext.externalContext.requestContextPath}/js/jquery/facebox.js" type="text/javascript"/> <script src="#{facesContext.externalContext.requestContextPath}/js/jquery/jquery.hoverIntent.minified.js" type="text/javascript"/> <script src="#{facesContext.externalContext.requestContextPath}/js/main.js" type="text/javascript"/> <script src="#{facesContext.externalContext.requestContextPath}/js/dlink.js?notitles&nomailevents" type="text/javascript"/>
<script src="#{facesContext.externalContext.requestContextPath}/js/testimonials.js" type="text/javascript"/>
<!--[if lt IE 7]> <link rel="stylesheet" type="text/css" media="all" href="/css/style_ie6.css"> <script src="/js/stylefix.js" type="text/javascript"></script> <![endif]--> <link rel="icon" href="/favicon.ico" type="image/x-icon"/> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
<link rel="alternate" type="application/rss+xml" title="TeamDev #{productPage.productName} Product News" href="http://support.teamdev.com/blogs/feeds/tags/#{productName}"/>
<link rel="alternate" type="application/rss+xml" title="TeamDev Company News" href="http://support.teamdev.com/blogs/feeds/tags/company_news"/> <link rel="alternate" type="application/rss+xml" title="TeamDev Products Release Notes" href="http://support.teamdev.com/blogs/feeds/tags/release_notes"/> <link rel="alternate" type="application/rss+xml" title="TeamDev Support Blog Posts Feed" href="http://support.teamdev.com/community/feeds/blogs?community=1"/> <link rel="alternate" type="application/rss+xml" title="TeamDev Support Documents Feed" href="http://support.teamdev.com/community/feeds/documents?community=1"/> </head> <body id="#{bodyId}">
<AjaxSettings id="j_id16" progressMessage="teamdev.jsf.component.ajaxsettings.DefaultProgressMessage@15fd59e" rendered="true" sessionExpiration="teamdev.jsf.component.ajaxsettings.DefaultSessionExpiration@c178c6" transient="false">
progressMessage
<DefaultProgressMessage id="j_id17" rendered="true" style="display: none;" transient="false"/>
sessionExpiration
<DefaultSessionExpiration confirmation="teamdev.jsf.component.confirmation.Confirmation@1e02d4c" id="j_id95" rendered="true" transient="false">
<Confirmation alignToInvoker="false" cancelButtonText="Reload later" captionText="Session Expired" closeOnOuterClick="false" details="A new session will be created when the page is reloaded" draggable="false" draggableByContent="true" height="160px" hidingTimeout="-1" id="j_id95--confirm_expiration" message="Your session has expired" minHeight="80px" minWidth="150px" modal="true" modalLayerStyle="background: black; filter: alpha(opacity=50); opacity: .50;" okButtonText="Reload page now" rendered="true" resizeable="false" showCloseWindowButton="false" showMessageIcon="true" transient="false" visible="false" width="400px"/>
</DefaultSessionExpiration>
</AjaxSettings>
<div id="Page">
<h1 id="Logo_small"><a href="/"><img src="#{facesContext.externalContext.requestContextPath}/images/logos/logo_1.png" alt="#{propertyService.properties['company.name.full']} Home Page" title="#{propertyService.properties['company.name.full']} Home Page"/></a></h1>
<UINamingContainer id="menuSubview" rendered="true" transient="false">
<UINamingContainer id="menuSubview" rendered="true" transient="false">
<ul id="Menu"> <li class="orange_bg #{current=='product' ? 'current' : ''}"><a href="/products/"><span><img src="/images/menu/blank.gif" alt="Producs"/></span></a></li> <li class="green_bg #{current=='store' ? 'current' : ''}"><a href="/store/"><span><img src="/images/menu/blank.gif" alt="Store"/></span></a></li> <li class="violet_bg #{current=='support' ? 'current' : ''}"><a href="/support/"><span><img src="/images/menu/blank.gif" alt="Support"/></span></a></li> <li class="indigo_bg #{current=='services' ? 'current' : ''}"><a href="/services/"><span><img src="/images/menu/blank.gif" alt="Services"/></span></a></li> <li class="blue_bg lastItem #{current=='company' ? 'current' : ''}"><a href="/company/"><span><img src="/images/menu/blank.gif" alt="Company"/></span></a></li>
</ul>
</UINamingContainer>
</UINamingContainer>
<UINamingContainer id="submenuSubview" rendered="true" transient="false">
<UIRepeat id="j_id22" offset="0" rendered="true" size="-1" transient="false" var="group">
<ul class="SubMenu #{group.name}">
<UIRepeat id="j_id24" offset="0" rendered="true" size="-1" transient="false" var="item">
<li class="#{item.current ? 'active' : ''} #{item.menuType.value=='IMAGE' ? 'imagemenu' : ''}">
<HtmlPanelGroup id="j_id26" rendered="false" transient="false">
<span>
<HtmlGraphicImage id="j_id28" ismap="false" rendered="false" transient="false"/>
<HtmlOutputText escape="true" id="j_id29" rendered="false" transient="false"/>
</span>
</HtmlPanelGroup>
<HtmlPanelGroup id="j_id31" rendered="true" transient="false">
<a href="#{item.url}" class="#{item.urlClass}" id="#{item.linkId}">
<HtmlGraphicImage id="j_id33" ismap="false" rendered="false" transient="false"/>
<HtmlOutputText escape="true" id="j_id34" rendered="false" transient="false"/>
</a>
</HtmlPanelGroup>
</li>
</UIRepeat>
</ul>
</UIRepeat>
</UINamingContainer>
<h3 id="Banner">
<HtmlGraphicImage alt="" id="j_id39" ismap="false" rendered="true" transient="false" url="/images/products/jni/jniwrapper/artwork.jpg" value="/images/products/jni/jniwrapper/artwork.jpg"/>
</h3> <div class="bannerTextHolder"><a href="/store/#{productName}/"> <img border="0" alt="Buy now" src="/images/buttons/buynow.png"/> </a> <p>Buy online in few steps<br/> Questions by <a href="mailto:sales@teamdev.com">email</a><br/></p> </div>
<div id="Content">
<div class="clearfix mainText"> <div id="leftContent" class="Col4_123 serif">
<HtmlForm enctype="application/x-www-form-urlencoded" id="j_id43" prependId="true" rendered="true" submitted="false" transient="false">
<HtmlOutputText escape="false" id="j_id44" rendered="true" transient="false" value="<p>JNIWrapper provides simplified access to native code from Java applications without using Java Native Interface (JNI.) You don’t need to create a native library to make system calls or spend time on learning the low-level ins and outs of the system architecture.</p> <div class="container"> <div class="Col2_1"> <h4>Native Function Invocation</h4> <p>JNIWrapper supports both <code>stdcall</code> and <code>cdecl</code> calling conventions and multiple C/C++ data types including structures, unions, and pointers. You can perform all native function calls simultaneously from different Java threads without synchronizing them. The product supports thread-safe concurrent function invocation.</p> </div> <div class="Col2_2"> <h4>High Performance</h4> <p>JNIWrapper is capable of handling any large amount of data involved in interactions between the Java and native code, requiring no performance tuning on your part. JNIWrapper allows you to debug native errors on the Java side, putting program execution fully under your control.</p> </div> </div>"/>
</HtmlForm>
</div> <div id="rightContent" class="Col4_4">
<script src="/js/jquery/jquery.validate.js" type="text/javascript"/> <script type="text/javascript"> var product = '#{productPage.productName}'; function fireGoogleAnalytics(productName, evaluate) { var action = evaluate ? "evaluate" : "download"; var eventStr = "/" + action + "-" + productName; pageTracker._trackPageview(eventStr); } function show(id) { var component = document.getElementById(id); component.className = 'visible'; $("#download\\:email").addClass("required email"); $("#download\\:name").addClass("required"); } function hide(id) { var component = document.getElementById(id); component.className = 'hidden'; $("#download\\:email").removeClass("required email error"); $("#download\\:name").removeClass("required error"); } function changeVisibility(id) { var component = document.getElementById('download:evaluation'); if (component.checked) { show(id); } else { hide(id); } } function emailValid() { if(isEvaluationChecked()){ return $('#download\\:email').valid(); } else { return true; } } $(document).ready(function() { document.getElementById("download:evaluation").checked = #{productPage.evaluationInfo.sendEvaluation}; document.getElementById("download:email").value = "#{productPage.evaluationInfo.email}"; document.getElementById("download:name").value = "#{productPage.evaluationInfo.name}"; $("#download").validate( { ignore :".ignore", errorPlacement : function(error, element) { // Do nothing } }); }); function isEvaluationChecked() { return document.getElementById('download:evaluation').checked; } function isFormValid() { var valid = $("#download").valid(); return valid; } function processSubmit() { if( isFormValid() ) { var component = document.getElementById('download:evaluation'); fireGoogleAnalytics(product, component.checked) } else { return false; } } </script> <div id="downloadEvaluateBox" class="BoxGrey SideBar"> <div class="container"> <h3>Download & Evaluate</h3> </div> <div class="content"> <p>#{productPage.productName}#{empty productPage.version ? '' : ' '}#{productPage.version}. See <a class="external" href="#{releaseNotesLink}">release notes</a></p>
<HtmlForm enctype="application/x-www-form-urlencoded" id="download" onsubmit="processSubmit();" prependId="true" rendered="true" submitted="false" transient="false">
<table> <tbody>
<HtmlPanelGroup id="j_id48" rendered="true" transient="false">
<tr> <td class="labelHolder">
<HtmlOutputLabel escape="true" for="platform" id="j_id50" rendered="true" transient="false">
Platform:
</HtmlOutputLabel>
</td> <td>
<DropDownField autoComplete="true" buttonAlignment="right" buttonClass="donwloadDropDownButton" converter="com.teamdev.site.jsf.beans.product.ProductPageHandler$ProductConverter@be1403" customValueAllowed="false" disabled="false" fieldClass="dropdownFieldClass" id="product" immediate="false" listAlignment="left" listItemClass="donwloadDropDownlistItem" localValueSet="false" maxlength="-2147483648" rendered="true" required="false" size="-2147483648" styleClass="downloadInput" suggestionDelay="350" suggestionMinChars="0" suggestionMode="all" timeout="-1" transient="false" valid="true" var="item">
popup
<DropDownPopup id="product--popup" rendered="true" transient="false"/>
<DropDownItems id="j_id53" rendered="true" transient="false"/>
<TableColumn filterKind="searchField" id="j_id54" rendered="true" resizeable="true" transient="false">
<HtmlGraphicImage id="j_id55" ismap="false" rendered="true" transient="false"/>
</TableColumn>
<TableColumn filterKind="searchField" id="j_id56" rendered="true" resizeable="true" transient="false">
<HtmlOutputText escape="true" id="j_id57" rendered="true" transient="false" value=" "/>
</TableColumn>
</DropDownField>
</td> </tr>
</HtmlPanelGroup>
<tr> <td class="labelHolder"> </td> <td> <table cellpadding="0" cellspacing="0" class="evaluationCheckboxHolder"> <tr> <td style="padding-right: 5px;">
<HtmlSelectBooleanCheckbox disabled="false" id="evaluation" immediate="false" localValueSet="false" onclick="changeVisibility('nameRow');changeVisibility('emailRow');" readonly="false" rendered="true" required="false" style="" transient="false" valid="true"/>
</td> <td>
<HtmlOutputLabel escape="true" for="evaluation" id="j_id61" rendered="true" transient="false">
Get evaluation key
</HtmlOutputLabel>
</td> </tr> </table> </td> </tr> <tr id="nameRow"> <td class="labelHolder">
<HtmlOutputLabel escape="true" for="name" id="j_id64" rendered="true" transient="false">
Name:
</HtmlOutputLabel>
</td> <td>
<HtmlInputText disabled="false" id="name" immediate="false" localValueSet="false" maxlength="-2147483648" readonly="false" rendered="true" required="false" size="-2147483648" styleClass="downloadInput required" transient="false" valid="true"/>
</td> </tr> <tr id="emailRow"> <td class="labelHolder">
<HtmlOutputLabel escape="true" for="email" id="j_id68" rendered="true" transient="false">
Email:
</HtmlOutputLabel>
</td> <td>
<HtmlInputText disabled="false" id="email" immediate="false" localValueSet="false" maxlength="-2147483648" readonly="false" rendered="true" required="false" size="-2147483648" styleClass="downloadInput required email " transient="false" valid="true"/>
</td> </tr> <tr> <td/> <td>
<HtmlCommandButton action="#{productPage.evaluate}" actionExpression="#{productPage.evaluate}" disabled="false" id="j_id72" immediate="false" readonly="false" rendered="true" transient="false" type="submit" value="Download"/>
</td> </tr> </tbody> </table>
</HtmlForm>
</div> </div>
<HtmlForm enctype="application/x-www-form-urlencoded" id="j_id75" prependId="true" rendered="true" submitted="false" transient="false">
<HtmlOutputText escape="false" id="j_id76" rendered="true" transient="false" value="<div class="container"> <a href="/downloads/jniwrapper/docs/JNIWrapper-Fact-Sheet.pdf" class="factsheet"> <span>JNIWrapper</span></a> <span><small>Learn how you can benefit from JNIWrapper and save your time and money!</small></span> </div><br/>"/>
</HtmlForm>
</div> </div> <div id="fullWidthContent" class="Col1_1 serif">
<HtmlForm enctype="application/x-www-form-urlencoded" id="j_id78" prependId="true" rendered="true" submitted="false" transient="false">
<HtmlOutputText escape="false" id="j_id79" rendered="true" transient="false" value="<div class="container hangingContent"> <div class="Col4_1 nomargintop center" title="Supported platforms" style="background:url(/images/products/jni/jniwrapper/jniwrapper_overview_platforms.png) no-repeat center 0; min-height:178px;"> <div class="systemRequirements" style="margin-top: 136px;"> <p>Windows, Mac OS X, Linux, AIX and Solaris 10</p> </div> </div> <div class="Col4_234 nomargintop"> <div class="container"> <div class="Col2_1 nomargintop"> <h4 class="sans-serif thin">Automatic Memory Management</h4> <p>All resources allocated by JNIWrapper are released automatically. You can treat JNIWrapper variables as usual Java objects that can be picked up by the Java garbage collector.</p> </div> <div class="Col2_2 nomargintop"> <h4 class="sans-serif thin">Code Generation Wizard</h4> <p>Using the Code Generator wizard bundled with JNIWrapper, you can generate Java wrappers for a required set of C types, including structures, unions and callbacks.</p> </div> </div> </div> <div id="testimonials" class="Col2_2"> <div> <p class="lightgray_text textright"> <em><q>We actually purchased a license and we are very happy with the product: great job! This product saves us time since I don’t have to write the JNI layer myself.</q></em><br/> <small>Sébastien Gemme, <a class="gray external" href="http://www.space.gc.ca/index.html">Canadian Space Agency</a></small> </p> </div> <div> <p class="lightgray_text textright"> <em><q>… I absolutely love your product.</q></em><br/> <small>Rob Desilets, <a class="gray external" href="http://www.docmagic.com/">Document Systems Inc.</a></small> </p> </div> <div> <p class="lightgray_text textright"> <em><q>… I have been very impressed with the amount of functionality provided as well as stability and robustness of the product…</q></em><br/> <small>Stephen Renner, <a class="gray external" href="http://www.ipaustralia.gov.au/">IP Australia</a></small> </p> </div> <div> <p class="lightgray_text textright"> <em><q>I am very satisfied with the product as I find the abstraction to the JNI functionality of Java to be quite useful.</q></em><br/> <small>Adam Acott, <a class="gray external" href="http://novexsoftware.com/">Novex Software Development Inc.</a></small> </p> </div> <div> <p class="lightgray_text textright"> <em><q>…my brief experience with your product, considering my previous experience with JNI, has been highly satisfactory. I have developed in a weekend what took me two weeks at least using other tools.</q></em><br/> <small>Hector Zendejas, <a class="gray external" href="http://cardware.biz/">Cardware.biz</a></small> </p> </div> </div> </div> <script type="text/javascript"> changeTestimonial(); </script>"/>
</HtmlForm>
</div>
</div> <div class="BoxGrey QuickLinks"> <div class="content container"> <div class="Col4_1">
<UINamingContainer id="purchaseNavigationBlock" rendered="true" transient="false">
<h4>Purchase & Licensing</h4> <ul> <li><a href="/#{productPage.productNameLowerCase}/licensing/">Licensing models</a></li> <li><a href="/store/#{productPage.productNameLowerCase}/">How to purchase #{productPage.productName}</a></li> <li><a href="/store/#{productPage.productNameLowerCase}/#discounts">Save with discounts</a></li> <!--li><a >Upgrade your product</a></li--> </ul>
</UINamingContainer>
</div> <div class="Separator4_12"/> <div class="Col4_2">
<UINamingContainer id="supportNavigationBlock" rendered="true" transient="false">
<h4>Support</h4> <ul> <li><a href="http://support.teamdev.com/#{productPage.productNameLowerCase}" class="external" target="_blank">Get help with #{productPage.productName}</a></li> <li><a href="http://support.teamdev.com/forms/reportForm.jsf" class="external" target="_blank">Submit your support request</a></li> </ul>
</UINamingContainer>
</div> <div class="Separator4_23"/> <div class="Col4_3">
<UINamingContainer id="documentationNavigationBlock" rendered="true" transient="false">
<h4>Documentation</h4> <ul> <li><a href="/#{productPage.productNameLowerCase}/features/">Features</a></li> <li><a href="#{propertyService.properties['server.download.folder']}/#{productPage.productNameLowerCase}/docs/#{productPage.productName}-PGuide.html">Programmer's Guide</a></li> <li><a href="/#{productPage.productNameLowerCase}/documentation/">FAQ and troubleshooting</a></li> <li><a href="http://support.teamdev.com/blogs/tags/#{productPage.productNameLowerCase}" class="external">Product news</a></li> </ul>
</UINamingContainer>
</div> <div class="Separator4_34"/> <div class="Col4_4">
<UINamingContainer id="productsNavigationBlock" rendered="true" transient="false">
<script type="text/javascript"> $(document).ready(function(){ $('.q_popuplayer').mouseout(function(){ $('.q_popuplayer').css({display: 'none'}); }); $('.productQuickLink:not(#jxfilewatcherQuickLink)').hoverIntent({ sensitivity: 3, interval: 200, over: function() { var productName = this.href.substring(0, this.href.length - 1); productName = productName.substring(productName.lastIndexOf('/') + 1); openProductPopup(productName); }, out: function() { } }); closeProductPopup(); }); function openProductPopup(productNameLowerCase) { if (productNameLowerCase == "") { return; } var productInfoSelector = "#" + productNameLowerCase + "ProductQuickLinkContent"; var productName = $(productInfoSelector + " > .productName")[0].innerHTML; var productDescription = $(productInfoSelector + " > .productDescription")[0].innerHTML; var description = '<strong><a href="/' + productNameLowerCase + '/">' + productName + '</a></strong><br/><span>' + productDescription + '</span><br/>'; if (productNameLowerCase != 'quipukit'){ description += '<a href="/' + productNameLowerCase + '/features/">Features</a>'; description += ' | '; } if (productNameLowerCase != 'jniwrapper'){ description += '<a href="/' + productNameLowerCase + '/onlinedemo/">Online Demo</a>'; } else { description += '<a href="/jniwrapper/winpack/">WinPack</a>'; } $("#productInfoDiv")[0].innerHTML = description; $("#productImgDiv")[0].innerHTML = '<img src="/images/icons/quicklinks/' + productNameLowerCase + '.png" alt="' + productName + '" align="left"/>'; var offset = $("#" + productNameLowerCase + "QuickLink").offset(); var pageOffset = $('#Page').offset(); var x = offset.left - pageOffset.left - 22; var navBlockOffset = $('.QuickLinks').offset(); var y = offset.top - navBlockOffset.top - 9; document.getElementById('productsNavigationBlock:links:productPopup').showAtXY(x, y); document.getElementById('productsNavigationBlock:links:productPopup').onmouseover = function() { q_showPopupLayer('productsNavigationBlock:links:productPopup'); }; } function closeProductPopup() { document.getElementById('productsNavigationBlock:links:productPopup').hide(); } </script> <h4>Products</h4> <div class="container"> <ul class="productsList"> <li><a id="jniwrapperQuickLink" href="/jniwrapper/" class="productQuickLink"> <img src="/images/icons/quicklinks/jniwrapper.png" alt="JNIWrapper" align="left"/>JNIWrapper</a> <div id="jniwrapperProductQuickLinkContent" style="display:none;"> <div class="productName">JNIWrapper</div> <div class="productDescription">Access to native code from Java without JNI</div> </div> </li> <li><a id="comfyjQuickLink" href="/comfyj/" class="productQuickLink"> <img src="/images/icons/quicklinks/comfyj.png" alt="ComfyJ" align="left"/>ComfyJ</a> <div id="comfyjProductQuickLinkContent" style="display:none;"> <div class="productName">ComfyJ</div> <div class="productDescription">Bi-directional Java-COM bridge</div> </div> </li> <li><a id="jxcaptureQuickLink" href="/jxcapture/" class="productQuickLink"> <img src="/images/icons/quicklinks/jxcapture.png" alt="JxCapture" align="left"/>JxCapture</a> <div id="jxcaptureProductQuickLinkContent" style="display:none;"> <div class="productName">JxCapture</div> <div class="productDescription">Screen capture API for Java apps</div> </div> </li> <li><a id="jxbrowserQuickLink" href="/jxbrowser/" class="productQuickLink"> <img src="/images/icons/quicklinks/jxbrowser.png" alt="JxBrowser" align="left"/>JxBrowser</a> <div id="jxbrowserProductQuickLinkContent" style="display:none;"> <div class="productName">JxBrowser</div> <div class="productDescription">Integration of Mozilla Firefox into Java AWT/Swing</div> </div> </li> </ul> <ul class="productsList"> <li><a id="jexplorerQuickLink" href="/jexplorer/" class="productQuickLink"> <img src="/images/icons/quicklinks/jexplorer.png" alt="JExplorer" align="left"/>JExplorer</a> <div id="jexplorerProductQuickLinkContent" style="display:none;"> <div class="productName">JExplorer</div> <div class="productDescription">Use the IE browser as a Java Swing UI component</div> </div> </li> <li><a id="jexcelQuickLink" href="/jexcel/" class="productQuickLink"> <img src="/images/icons/quicklinks/jexcel.png" alt="JExcel" align="left"/>JExcel</a> <div id="jexcelProductQuickLinkContent" style="display:none;"> <div class="productName">JExcel</div> <div class="productDescription">Provides full access to Excel functionality from Java</div> </div> </li> <li><a id="jxfilewatcherQuickLink" href="/jxfilewatcher/" class="productQuickLink"> <img src="/images/icons/quicklinks/jxfilewatcher.png" alt="JxFileWatcher" align="left"/>JxFileWatcher</a> </li> <li><a id="quipukitQuickLink" href="/quipukit/" class="productQuickLink"> <img src="/images/icons/quicklinks/quipukit.png" alt="QuipuKit" align="left"/>QuipuKit</a> <div id="quipukitProductQuickLinkContent" style="display:none;"> <div class="productName">QuipuKit</div> <div class="productDescription">JSF library for creating a dynamic UI for Web apps</div> </div> </li> </ul> </div>
<HtmlForm enctype="application/x-www-form-urlencoded" id="links" prependId="true" rendered="true" submitted="false" transient="false">
<PopupLayer closeOnOuterClick="false" draggable="false" hidingTimeout="0" id="productPopup" modal="false" rendered="true" transient="false" visible="false">
<HtmlOutputText escape="false" id="j_id89" rendered="true" transient="true" value=" <div class="productPopup"> <div> <div id="productImgDiv" class="productImgDiv"> </div> <div id="productInfoDiv" class="productInfoDiv"> </div> </div> </div>"/>
</PopupLayer>
</HtmlForm>
</UINamingContainer>
</div> </div> </div>
<UINamingContainer id="footerSubview" rendered="true" transient="false">
<div id="Footer" class="clearfix">
<HtmlForm enctype="application/x-www-form-urlencoded" id="errorReport" prependId="true" rendered="true" submitted="false" transient="false">
<HtmlInputHidden id="pageId" immediate="false" localValueSet="false" rendered="true" required="false" transient="false" valid="true"/>
<HtmlInputHidden id="errorText" immediate="false" localValueSet="false" rendered="true" required="false" transient="false" valid="true"/>
<HtmlPanelGroup id="errorReportSender" rendered="true" transient="false">
<ReloadComponents disableDefault="false" id="sendBugReport" immediate="false" rendered="true" requestDelay="0" submitParent="true" transient="false"/>
</HtmlPanelGroup>
</HtmlForm>
<div class="Col2_1"> © #{dateUtil.currentYear} #{propertyService.properties['company.name.full']} All rights reserved. <a href="/legal/">Terms of Use</a> | <a href="/privacy/">Privacy Policy</a>
<HtmlOutputText escape="true" id="buildNumber" rendered="true" style="color:white;" transient="false" value=" | Build: #223"/>
</div> <div class="Col2_2 textright"> <script> function googleSearch(value) { var queryComponent = value + " site:" + window.location.host; queryComponent = encodeURIComponent(queryComponent); var query = "http://www.google.com/search?hl=en&q=" + queryComponent; window.location = query; } </script> <form id="search" type="container" method="get" onsubmit="googleSearch(document.getElementById('search_field').value);return false;"> <a href="/company/contactus/">Contact Us</a> | <a href="/company/news/">Latest News</a> | <a href="/company/career/">Job Offers</a> | <!-- a href="/sitemap/">Site Map</a--> <input type="search" id="search_field" name="text" placeholder="Search" autosave="TeamDev" results="5"/> </form> </div> </div>
</UINamingContainer>
</div> <!-- Google Analytics --> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-477095-2"); pageTracker._setDomainName("none"); pageTracker._setAllowLinker(true); pageTracker._initData(); pageTracker._trackPageview(); </script> </body> </html>
</dn>

+ Scoped Variables

Request Parameters
NameValue
None
Request Attributes
NameValue
__acegi_filterSecurityInterceptor_filterAppliedtrue
__acegi_session_integration_filter_appliedtrue
clearVerifiableComponentstrue
errorReportHandlercom.teamdev.site.jsf.bean.feedback.ErrorReportHandler@113d25d
jniwrapperOverviewcom.teamdev.site.jsf.beans.product.ProductPageHandler@57de60
q__defaultProgressMessageteamdev.jsf.component.ajaxsettings.DefaultProgressMessage@15fd59e
q__defaultProgressMessageInUsetrue
Session Attributes
NameValue
Q__SESSIONtrue
safari_browserfalse
Application Attributes
NameValue
None
Mar 17, 2010 5:31:31 PM - Generated by Facelets