Patch file

OLWu1
Posts: 23
Joined: Tue Feb 07, 2012 9:27 am

Patch file

Postby OLWu1 » Tue Jul 24, 2012 3:23 am

Hello,

I'm trying to use a patch files to add all iphones devices to my device list.
I'm using wurflk 1.01 API, because we are using maven and because it was like that when I got the project(too much work to upgrade for no significant gain for the moment)

Basically, I need to get a list with all iphones, from 2g/1 to 4S.
The same for Ipad.

I don't care about user agents, because they are no use for iphone, or almost.(and not unique, so not usable to identify a device).
I'm trying to get the last release of the device OS, saying that people will do the update.
I commented a lot of them, because except the OS version, nothing changed.

My identifier is a combination of brand name and model name. (so i can not get 3 model Iphone for Apple, they would be mixed together).

here is my patch file :

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<wurfl_patch>
   <devices>
<!--	  
	  <device actual_device_root="true" fall_back="apple_iphone_ver1" id="apple_iphone2g_ios1_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A538a Safari/419.3">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone" />
			<capability name="release_date" value="2007_june" />
		 </group>
	  </device>

	  <device actual_device_root="true" fall_back="apple_iphone_ver2" id="apple_iphone2g_ios2_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A538a Safari/419.3">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone" />
			<capability name="release_date" value="2007_june" />
		 </group>
	  </device>
-->
	  <device actual_device_root="true" fall_back="apple_iphone_ver3" id="apple_iphone2g_ios3_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A538a Safari/419.3">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone" />
			<capability name="release_date" value="2007_june" />
		 </group>
	  </device>
<!--
	  <device actual_device_root="true" fall_back="apple_iphone_ver2" id="apple_iphone3g_ios2_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 3G" />
			<capability name="release_date" value="2008_july" />
		 </group>
	  </device>
	  <device actual_device_root="true" fall_back="apple_iphone_ver3" id="apple_iphone3g_ios3_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 3G" />
			<capability name="release_date" value="2008_july" />
		 </group>
	  </device>
-->
	  <device actual_device_root="true" fall_back="apple_iphone_ver4" id="apple_iphone3g_ios4_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 3G" />
			<capability name="release_date" value="2008_july" />
		 </group>
	  </device>
<!--
	  <device actual_device_root="true" fall_back="apple_iphone_ver3" id="apple_iphone_3gs_ios3_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.11 (KHTML, like Gecko) Version/3.1.1 Mobile/7A238j Safari/525.20">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 3GS" />
			<capability name="release_date" value="2009_june" />
		 </group>
	  </device>
	  <device actual_device_root="true" fall_back="apple_iphone_ver4" id="apple_iphone_3gs_ios4_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.11 (KHTML, like Gecko) Version/3.1.1 Mobile/7A238j Safari/525.20">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 3GS" />
			<capability name="release_date" value="2009_june" />
		 </group>
	  </device>
-->
	  <device actual_device_root="true" fall_back="apple_iphone_ver5" id="apple_iphone_3gs_ios5_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.11 (KHTML, like Gecko) Version/3.1.1 Mobile/7A238j Safari/525.20">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 3GS" />
			<capability name="release_date" value="2009_june" />
		 </group>
	  </device>
<!--
	  <device actual_device_root="true" fall_back="apple_iphone_ver4" id="apple_iphone_4_ios4_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Mobile/7D11">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 4" />
			<capability name="release_date" value="2010_june" />
		 </group>
		 <group id="display">
			<capability name="resolution_width" value="640" />
			<capability name="resolution_height" value="960" />
		 </group>
	  </device>
-->
	  <device actual_device_root="true" fall_back="apple_iphone_ver5" id="apple_iphone_4_ios5_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Mobile/7D11">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 4" />
			<capability name="release_date" value="2010_june" />
		 </group>
		 <group id="display">
			<capability name="resolution_width" value="640" />
			<capability name="resolution_height" value="960" />
		 </group>
	  </device>
	  <device actual_device_root="true" fall_back="apple_iphone_ver5" id="apple_iphone_4s_ver1" user_agent="Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 4S" />
			<capability name="release_date" value="2011_october" />
		 </group>
		 <group id="display">
			<capability name="resolution_width" value="640" />
			<capability name="resolution_height" value="960" />
		 </group>
	  </device>
<!--
	  <device actual_device_root="true" fall_back="apple_ipad_ver1" id="apple_ipad_ios32_ver1" user_agent="Mozilla/5.0 (iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7D11">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad" />
			<capability name="release_date" value="2010_april" />
		 </group>
	  </device>
	  <device actual_device_root="true" fall_back="apple_ipad_ver1_sub421" id="apple_ipad_ios42_ver1" user_agent="Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad" />
			<capability name="release_date" value="2010_april" />
		 </group>
	  </device>
	  <device actual_device_root="true" fall_back="apple_ipad_ver1_sub431" id="apple_ipad_ios43_ver1" user_agent="Mozilla/5.0 (iPad; U; CPU iPhone OS 4_3_1 like Mac OS X; fr-fr) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/7D11">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad" />
			<capability name="release_date" value="2010_april" />
		 </group>
	  </device>
	  <device actual_device_root="true" fall_back="apple_ipad_ver1_sub5" id="apple_ipad_ios50_ver1" user_agent="Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.0.2 Mobile/9A5259f Safari/6533.18.5">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad" />
			<capability name="release_date" value="2010_april" />
		 </group>
	  </device>
	  <device actual_device_root="true" fall_back="apple_ipad_ver1_sub51" id="apple_ipad_ios51_ver1" user_agent="Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B5127c Safari/7534.48">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad" />
			<capability name="release_date" value="2010_april" />
		 </group>
	  </device>
	  -->
	  <device actual_device_root="true" id="apple_ipad_ver1_sub431" user_agent="Mozilla/5.0 (iPad; U; CPU iPhone OS 4_3_1 like Mac OS X; fr-fr) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/7D11">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad 2" />
			<capability name="release_date" value="2011_march" />
		 </group>
	  </device>
<!--
	  <device actual_device_root="true" fall_back="apple_ipad_ver1_sub5" id="apple_ipad_2_ios50_ver1" user_agent="Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.0.2 Mobile/9A5259f Safari/6533.18.5">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad 2" />
			<capability name="release_date" value="2011_march" />
		 </group>
	  </device>
	  <device actual_device_root="true" fall_back="apple_ipad_ver1_sub51" id="apple_ipad_2_ios51_ver1" user_agent="Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B5127c Safari/7534.48">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad 2" />
			<capability name="release_date" value="2011_march" />
		 </group>
	  </device>
	  -->
	  <device actual_device_root="true" id="apple_ipad_ver1_sub51" user_agent="Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B5127c Safari/7534.48">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad 3" />
			<capability name="release_date" value="2012_march" />
		 </group>
		 <group id="display">
			<capability name="resolution_width" value="1536" />
			<capability name="resolution_height" value="2048" />
		 </group>
	  </device>
<!--
	  <device actual_device_root="true" fall_back="apple_ipad_ver1_sub51" id="apple_ipad_3_ios51_ver1" user_agent="Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B5127c Safari/7534.48">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad 3" />
			<capability name="release_date" value="2012_march" />
		 </group>
		 <group id="display">
			<capability name="resolution_width" value="1536" />
			<capability name="resolution_height" value="2048" />
		 </group>
	  </device>
	  -->
   </devices>
</wurfl_patch>
I get an error :
Exception in thread "main" java.lang.NullPointerException
at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:780)
at net.sourceforge.wurfl.core.resource.ModelDevices.containsId(ModelDevices.java:142)
at net.sourceforge.wurfl.core.resource.WURFLConsistencyVerifier.verifyHierarchy(WURFLConsistencyVerifier.java:151)
at net.sourceforge.wurfl.core.resource.WURFLConsistencyVerifier.verify(WURFLConsistencyVerifier.java:78)
at net.sourceforge.wurfl.core.resource.DefaultWURFLModel.<init>(DefaultWURFLModel.java:127)
Do you have any idea what could be the issue ?

It's not really understandable for me...

Pierre

sm_support2
Posts: 294
Joined: Mon Jun 20, 2011 5:04 pm

Re: Patch file

Postby sm_support2 » Tue Jul 24, 2012 8:26 am

OLWu1 wrote: I'm using wurflk 1.01 API, because we are using maven and because it was like that when I got the project(too much work to upgrade for no significant gain for the moment)
For obvious reasons, ScientiaMobile does not support WURFL versions released before the creation of the company, or, equivalently, only API 1.3 and superior are supported. I would say that obtaining support is in itself a significant gain.

If upgrading to a newer version is not an option, please contact us offline. We should be able to put you in contact with European system integrators that should be able to support it (for a fee to be negotiated directly with them, of course)

Thanks

OLWu1
Posts: 23
Joined: Tue Feb 07, 2012 9:27 am

Re: Patch file

Postby OLWu1 » Tue Jul 24, 2012 8:37 am

Hello,

I think the main issue is related to the patch file. Writing such files by hands is clearly not easy, and comes to errors 99% of the time.

Could you (or anyone) check that this patch file is correct ?
I tried to use the one you provided me, but it didn't worked.

I would also be very interested in knowing how the new API is better than the old one. The installation seems very complex, there is no maven support, and that mean I have to change all my wurfl Importer logic... which can break my entire software. That's definitely not something trivial.

Pierre

kamermans
Posts: 393
Joined: Mon Jun 06, 2011 9:50 am

Re: Patch file

Postby kamermans » Tue Jul 24, 2012 8:45 am

With a quick glance, I can see that the last two uncommented devices are missing fall_back IDs. Every device needs to fall back onto something, so you will need to set those devices. Does this resolve the error?
Thanks,

Steve Kamerman
ScientiaMobile

Make sure you check out our WURFL Cloud, WURFL InSight and WURFL InFuze products!

OLWu1
Posts: 23
Joined: Tue Feb 07, 2012 9:27 am

Re: Patch file

Postby OLWu1 » Tue Jul 24, 2012 10:06 am

Thanks,

After a lot of duplicate user agent, missing user agent and circular relation, I was able to create this file... hopping it will be not too bad.

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<wurfl_patch>
   <devices>
	  <device id="apple_iphone_ver1" user_agent="Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A538a Safari/419.3" fall_back="apple_generic" actual_device_root="true">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone" />
			<capability name="release_date" value="2007_june" />
		 </group>
	  </device>
	  <device id="apple_iphone_ver2" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20" fall_back="apple_iphone_ver1" actual_device_root="true">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 3G" />
			<capability name="release_date" value="2008_july" />
		 </group>
	  </device>
	  <device id="apple_iphone_ver3" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.11 (KHTML, like Gecko) Version/3.1.1 Mobile/7A238j Safari/525.20" fall_back="apple_iphone_ver2_2_1">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 3GS" />
			<capability name="release_date" value="2009_june" />
		 </group>
	  </device>
	  <device id="apple_iphone_ver4" user_agent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Mobile/7D11" fall_back="apple_iphone_ver3_1_3" actual_device_root="true">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 4" />
			<capability name="release_date" value="2010_june" />
		 </group>
		 <group id="display">
			<capability name="resolution_width" value="640" />
			<capability name="resolution_height" value="960" />
		 </group>
	  </device>
	  <device id="apple_iphone_ver5" user_agent="Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3" fall_back="apple_iphone_ver4" actual_device_root="true">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPhone 4S" />
			<capability name="release_date" value="2011_october" />
		 </group>
		 <group id="display">
			<capability name="resolution_width" value="640" />
			<capability name="resolution_height" value="960" />
		 </group>
	  </device>
	  <device actual_device_root="true" fall_back="apple_ipad_ver1_sub51" id="apple_ipad_2_ios51_ver1" user_agent="Invalid Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B5127c Safari/7534.48">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad 2" />
			<capability name="release_date" value="2011_march" />
		 </group>
	  </device>
	  <device actual_device_root="true" id="apple_ipad_ver1_sub51" fall_back="apple_ipad_ver1_sub5" user_agent="Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B5127c Safari/7534.48">
		 <group id="product_info">
			<capability name="brand_name" value="Apple" />
			<capability name="model_name" value="iPad 3" />
			<capability name="release_date" value="2012_march" />
		 </group>
		 <group id="display">
			<capability name="resolution_width" value="1536" />
			<capability name="resolution_height" value="2048" />
		 </group>
	  </device>
   </devices>
</wurfl_patch>
Thanks

kamermans
Posts: 393
Joined: Mon Jun 06, 2011 9:50 am

Re: Patch file

Postby kamermans » Tue Jul 24, 2012 10:47 am

Yes, this should work just fine!
Thanks,

Steve Kamerman
ScientiaMobile

Make sure you check out our WURFL Cloud, WURFL InSight and WURFL InFuze products!


Who is online

Users browsing this forum: No registered users and 46 guests